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

ane*_*a20 3 ruby unix epoch unix-timestamp

我一直在使用这个答案将纪元时间转换为日期时间。我有这个时代号:

epoch = 1549626705942
Run Code Online (Sandbox Code Playgroud)

并做:

Time.at(epoch).to_datetime
Run Code Online (Sandbox Code Playgroud)

但是,我得到了这个结果:

#<DateTime: 51075-09-19T08:45:42+02:00 ((20376082j,24342s,0n),+7200s,2299161j)>
Run Code Online (Sandbox Code Playgroud)

我使用的是 Ruby 版本 2.5.3p105,我的时钟设置为当前年份。这个纪元值计算到今天的日期(2019 年 2 月 2 日),但我得到的是 51075 年。真的不确定发生了什么。

这也是奇怪,因为,当我进入我的时间戳在喜欢的网站这一块我得到今天的日期,但在这里我得到了相同的结果,我的Ruby代码。

编辑:我试图删除这个日期的最后 3 个数字并得到一个正确的日期。那么可以说有2个时代“格式”吗?

int*_*ale 6

您正在将毫秒传递给该Time::at()方法。你应该在那里过几秒钟。文档链接在这里

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

UPD

这对你有用:

Time.at(0, your_epoch_milliseconds, :millisecond)
Run Code Online (Sandbox Code Playgroud)