2012-08-31 110 views
0

我有一個服務器事件DateTime = DateTime:「2012-08-31T13:27:14.568-07:00」,它的時間戳=時間戳:「129909184345680927」。這兩者如何相互關聯?它是什麼時間戳格式?

+0

爲什麼投票? – Yang

+1

我沒有倒下,但我可以假設一個人認爲這個問題缺乏上下文來縮小可能性。 – GolezTrol

回答

3

這是因爲1601-01-01T00「滴答」(100ns的單元[H/T到GolezTrol用於修正],對於合理的低分辨率時間記錄所使用的幾個系統)的數量:00:00Z

從一個世紀之初開始就很方便,如果您可能正在處理歷史數據,那麼很長一段時間很適合。

但是,有了這樣的歷史數據,你將不得不爲1582年之前的日期提供某種特定於領域的系統,當公曆替換朱利安時(雖然它的使用直到不同時間在不同的地方,有些國家不是從朱利安到格里高利,直到20世紀)。有些人使用格列高利*(格里高利就像日曆一樣),在發明它的地方切換到朱利安,或者在某個國家進行研究的地方,以及那些使用格列高利公主的人不同意是否存在在1BCE和1CE之間爲0年。

所以,真的,因爲我們不能在1582年之前有一個通用的日期,所以不要嘗試。更好的是以17世紀的開始爲你的「T = 0」。因此1601-01-01T00:00:00Z

heh。忘了說無聊的一點。它被LDAP,一些數據庫和其他使用。

*有趣的提示:很多人把格雷戈利人稱爲「突如其來的格里高利」,這很奇怪。 「Proleptic」在涉及到實際時間之前是一個比較模糊的詞(「前殖民地美國」,「英格蘭在盎格魯撒克遜人之前」),這是有道理的。 「Prolaptic」是一個更少使用的單詞,它是「脫垂」的形容詞形式 - 當一個器官從應有的位置向前或向下移動時,這是毫無意義的。有一天,我決定弄清楚爲什麼會發生這種情況。據我所知,在ISO 8601的版本中,這是一個拼寫錯誤,因爲它是第一個被許多人聽說過的第一個錯誤。

+1

我相信這是LDAP使用的時間戳,只有我相信它在100納秒間隔。 – GolezTrol

+0

@GolezTrol .NET使用相同的方法,內部'DateTime'自0001-01-01T00:00:00Z開始存儲10μs計數,這是格雷高利的公式。 –

+0

@GolezTrol現在我想起了它,你對100ns是正確的,.NET也是如此。我只是試圖將1/10,000,000秒變成更易讀的單位,並且做出了一個愚蠢的解釋。謝謝。 –