领先3个零的大纪元时间将返回无效年份。
Time.at(1520486517000).to_datetime
=> Wed, 19 Apr 50152 19:20:00 +0530
删除结束3个零后,它返回并生成有效时间戳。
Time.at(1520486517).utc.to_datetime
=> Thu, 08 Mar 2018 05:21:57 +0000
当输入有冗长的纪元数字时,红宝石有没有办法将纪元时间转换为有效的时间戳?
答案 0 :(得分:3)
使用DateTime#strptime
和"%Q"
格式化程序来解析毫秒数。
require 'date'
DateTime.strptime 1520486517000.to_s, '%Q'
#⇒ #<DateTime: 2018-03-08T05:21:57+00:00 ((2458186j,19317s,0n),+0s,2299161j)>
答案 1 :(得分:-1)
我找到了以下处理长时间戳的方法。
https://www.ruby-forum.com/topic/85822
Time.at(1520486517000/1000).utc.to_datetime
=> Thu, 08 Mar 2018 05:21:57 +0000