Ruby 从历元到日期时间的转换不正确
我一直用它把历元时间转换成日期时间。我有一个纪元编号:Ruby 从历元到日期时间的转换不正确,ruby,unix,unix-timestamp,epoch,Ruby,Unix,Unix Timestamp,Epoch,我一直用它把历元时间转换成日期时间。我有一个纪元编号: epoch = 1549626705942 并且做: Time.at(epoch).to_datetime 然而,我得到的结果是: #<DateTime: 51075-09-19T08:45:42+02:00 ((20376082j,24342s,0n),+7200s,2299161j)> # 我使用的是Ruby版本2.5.3p105,时钟设置为当前年份。这个划时代的价值评估为今天(2019年2月2日),但我得到了510
epoch = 1549626705942
并且做:
Time.at(epoch).to_datetime
然而,我得到的结果是:
#<DateTime: 51075-09-19T08:45:42+02:00 ((20376082j,24342s,0n),+7200s,2299161j)>
#
我使用的是Ruby版本2.5.3p105,时钟设置为当前年份。这个划时代的价值评估为今天(2019年2月2日),但我得到了51075年。真的不知道发生了什么
这也很奇怪,因为当我在一个站点输入我的时间戳时,就像我得到今天的日期一样,但我得到的结果与我的Ruby代码相同
编辑:我试图删除这个日期的最后3个数字,得到了一个正确的日期。所以有两种历元“格式”可以这么说吗?您正在将毫秒传递给
Time::at()
方法。你应该在那里过几秒钟。指向文档的链接不可用
要检索历元值(以秒为单位),请使用
UPD
这将对您有用:
Time.at(0,你的时间为毫秒,:毫秒)
有没有一种方法可以同时传递毫秒数并获得正确的日期时间?如何检索毫秒数?我从API中检索了毫秒数的epoch API。因此,我可以修剪这个整数(修剪最后3个数字是否总是有效?),或者配置Ruby,使其正确地将该数字转换为当前格式的DateTime。我对检索但转换已经给我的历元值不感兴趣。谢谢,你能参考你获得/计算此解决方案的资源吗?我正在查看“.at”rdoc,找不到任何与此相关的参考资料。我在答案中给了您参考资料。这是复制粘贴