好吧我在python中看这个,但我更喜欢红宝石。我想要做的是从这个数字得到一个日期和时间 - 12988822998637849 - 这是自1601年1月1日以来的微秒数。这就是Chrome存储它的时间戳的方式,我已经在python中看到了很多方法,但我对ruby更加满意,我不知道如何开始这样做。 (这次我的Google-Fu没有帮助我) 请注意,此示例编号来自几天前。我会接受任何帮助。谢谢!
答案 0 :(得分:5)
查看Time.at。
Windows文件时间是“64位值,表示自公元1601年1月1日午夜12点(美国时间)协调世界时(UTC)以来经过的100纳秒间隔的数量。” Ref.
相比之下,Ruby存储时间与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"
答案 1 :(得分:1)
您需要做的就是使用Chrome时间原点创建一个Ruby日期,然后按所需的微秒数递增:
Time.gm(1601,1,1) + 12988822998637849 / 1000000
# => 2012-08-07 14:23:18 UTC