从纪元到日期时间的转换不正确

时间:2019-02-08 12:17:14

标签: ruby unix unix-timestamp epoch

我一直在使用this answer将纪元时间转换为DateTime。我有这个纪元号码:

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。真的不确定发生了什么。

这也很奇怪,因为当我在this one这样的网站上输入时间戳时,我得到了今天的日期,但是here我得到的结果与我的Ruby代码相同。

编辑:我试图删除此日期的后3个数字,并获得了正确的日期。可以这么说是不是有2个时代的“格式”?

1 个答案:

答案 0 :(得分:3)

您正在将毫秒数传递给@runInSeparateProcess方法。您应该在那里经过几秒钟。链接到文档为here

要获取纪元值(以秒为单位),请使用Time#to_i

UPD

这将为您工作:

Time::at()