2012-08-09 23 views
2

好吧我在python中查看這個,但我更喜歡ruby。我想要做的是從這個數字中獲取日期和時間 - 12988822998637849 - 這是自UTC 1601年1月1日以來的微秒數。這就是Chrome存儲時間戳的方式,我已經看到了很多方法可以在python中做到這一點,但是我對ruby更加滿意,我不知道如何開始這樣做。 (我的Google-Fu這次沒有幫我) 注意這個例子的號碼來自幾天前。我會接受任何幫助。謝謝!Ruby-從微秒獲得日期

回答

5

請看Time.at

Windows文件時間是「一個64位值,表示從1601年1月1日午夜12:00點(經緯度)(C.E.)協調世界時(UTC)開始經過的100納秒間隔的數量。」 Ref.

相比之下,紅寶石專賣店次類似Unix的:「時間在內部存儲爲秒和毫秒,因爲時代的數字,1970年1月1日00:00 UTC」 Ref.

# This return a Time 
Time.at(12988822998637849/1000000-11644473600) # Epoch Diff is 11644473600 
# => 2012-08-07 11:23:18 -0300 

# This returns a String 
Time.at(12988822998637849/1000000-11644473600).strftime("%Y-%m-%d %H:%M.%S") 
# => "2012-08-07 11:23.18" 
+0

我想你可能在你的太多零「秒到微秒」轉換... – 2012-08-09 03:30:42

+0

對不起, 它是和我複製粘貼的舊編輯...現在是正確的! – 2012-08-09 03:32:09

+0

完美。非常有幫助。謝謝!!只需要弄清楚這個時區的東西,我在做生意 – 2012-08-09 03:40:59

1

所有你需要的做的是使用Chrome時原點創建Ruby日期,然後通過必要的微秒數增加:

Time.gm(1601,1,1) + 12988822998637849/1000000 

# => 2012-08-07 14:23:18 UTC