2011-06-07 76 views
4

struct stat中的一個字段是st_mtime。我認爲這是自1970年1月1日以來的秒數。是格林尼治標準時間還是當地時間?結構統計時間GMT?

+1

我會說這很無關緊要。無論如何,相同的秒數已經過去了;結果將在同一時間系統中存儲數據。 – 2011-06-07 22:03:59

+0

如果我不知道st_mtime的單位,該如何使用它?如果當地時間是夏令時,與格林尼治標準時間相比,這不會是+ - 1小時+ - Z小時嗎? – johnnycrash 2011-06-07 22:11:02

回答

8

time_t類型表示從1970年1月1日00:00 UTC開始經過的秒數(該時刻稱爲「時代」,發生在世界各地的同一時刻)。你可以認爲「UTC」與「GMT」意思相同(關於細微差別的細節見Leap Second)。

注意,而不是添加或從time_t型減去值,你應該總是使用localtime()mktime()功能轉換和從本地時區表示。

+0

並不真正影響答案,但就像一個參考,UTC和GMT實際上是不同的,GMT肯定不會被棄用。在夏令時期間,它們相差一小時。曾經讓我的團隊在英國的一個數據中心非常頭痛。 – 2014-07-03 14:43:37

+0

@JohnWu:我剛剛注意到有人編輯我的答案,添加了不正確的信息,你迴應了。道歉;我刪除了不正確的信息,並添加了一個鏈接以進一步解釋。 – 2014-07-03 17:36:03