Ruby - 以本地时间字符串为毫秒的纪元时间

时间:2016-10-08 05:28:56

标签: ruby

我有以下UNIX纪元时间戳 - 1475001600029

我需要将其转换为local格式的日期时间 - 2016/09/28 00:01:13.536

我尝试过的事情

irb(main):005:0> Time.at(1475001600079)
=> 48710-12-11 00:11:19 +0530    # gives a weird value for year


irb(main):010:0> Time.strptime(1475001600079.to_s, '%Q')
NoMethodError: undefined method `strptime' for Time:Class
        from (irb):10
        from C:/RailsInstaller/Ruby2.2.0/bin/irb:11:in `<main>'

如何解决这个问题?

RUby版本是 - ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]

2 个答案:

答案 0 :(得分:2)

您可以考虑使用:millisecond的{​​{1}}选项来代替1000的明确除法

Time.at()

答案 1 :(得分:1)

尝试Time.at(1475001600079 / 1000.0)

红宝石的纪元时间以秒为单位,而不是毫秒。

关于NoMethodError,您需要require 'time'才能致电Time::strptime

最后你需要的格式:

Time.at(1475001600079 / 1000.0).strftime('%Y/%m/%d %H:%M:%S.%3N')