在Rails中将毫秒转换为格式化日期

时间:2013-09-22 10:28:10

标签: ruby-on-rails datetime

我确信这应该很简单(可能缺少一些明显的东西),但是......我有一个毫秒的数据库字符串,我想在Rails中转换为美国格式的日期。想调用.to_date将成为我的朋友,但这会引发一个奇怪的错误。

article.date => "1379844601000"

article.date.to_date
NoMethodError: undefined method `div' for nil:NilClass

任何人都可以建议正确的方法吗?

4 个答案:

答案 0 :(得分:41)

将其转换为秒(milliseconds/1000)并在结果上调用Time::at

Time.at(1379844601000/1000)
# => 2013-09-22 12:10:01 +0200

Time::at on ruby-doc.org

答案 1 :(得分:37)

Time.strptime(milliseconds.to_s, '%Q')
// %Q - Number of milliseconds since 1970-01-01 00:00:00 UTC.

答案 2 :(得分:18)

使用Date.strptime - 但在此之前,请先将其转换为秒:

sec = ('1379844601000'.to_f / 1000).to_s
Date.strptime(sec, '%s')
//Sun, 22 Sep 2013 

答案 3 :(得分:-1)

Time.parse(“1379844601000”)将为您提供日期和时间