由于13位的时间戳在Ruby中是比较另类的,以为Ruby中默认的时间戳都是10位的。而Time和Date是Ruby中常用的处理时间的模块。
由于最初遇到问题的时候网上搜了好久都没找到合适的,因此就自己写一下,帮助下再次遇到这个问题的小伙伴们吧!
使用Time解决
使用Time的方式比较投机取巧吧。
require 'time'
p Time.at(1456466229973 / 1000, (1456466229973 % 1000) * 1000)
输出
2016-02-26 13:57:09 +0800
[Finished in 0.1s]
使用Date解决
require 'date'
date = DateTime.strptime "1456466229973",'%Q'
p date
p date.strftime("%FT%T%:z")
输出
#<DateTime: 2016-02-26T05:57:09+00:00 ((2457445j,21429s,973000000n),+0s,2299161j)>
"2016-02-26T05:57:09+00:00"
[Finished in 0.1s]