Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 从历元到日期时间的转换不正确_Ruby_Unix_Unix Timestamp_Epoch - Fatal编程技术网

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,找不到任何与此相关的参考资料。我在答案中给了您参考资料。这是复制粘贴