【问题标题】:Ruby - epoch time with milliseconds to local time stringRuby - 以毫秒为单位的纪元时间到本地时间字符串
【发布时间】:2017-02-17 03:33:04
【问题描述】:

我有以下 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]

【问题讨论】:

    标签: ruby


    【解决方案1】:

    您也可以考虑使用Time.at():millisecond 选项,而不是显式除以1000

    > Time.at(0, 1475001600029, :millisecond)
    2016-09-27 18:40:00 +0000
    

    【讨论】:

      【解决方案2】:

      试试Time.at(1475001600079 / 1000.0)

      ruby 中的纪元时间以秒为单位,而不是毫秒。

      至于NoMethodError,您需要在拨打Time::strptime之前先require 'time'

      最后是你需要的格式:

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

      【讨论】:

      • @Aetherus 所需的格式是2016/09/28 00:01:13.536
      • @user3206440 已更新
      猜你喜欢
      • 2018-05-04
      • 1970-01-01
      • 2014-03-14
      • 2013-05-14
      • 1970-01-01
      • 2021-03-01
      • 2017-08-05
      • 2011-03-09
      • 2015-09-15
      相关资源
      最近更新 更多