flickr api提供了一个作为unix时间戳的发布日期:"The posted date is always passed around as a unix timestamp, which is an unsigned integer specifying the number of seconds since Jan 1st 1970 GMT.
“。
例如,这里是日期'1100897479
‘。如何使用Ruby on Rails对其进行格式化?
发布于 2012-06-19 16:57:22
一旦解析了时间戳字符串并拥有了time对象(有关详细信息,请参阅其他答案),就可以使用Rails中的Time.to_formatted_s了。它有几种内置的格式,你可以用符号来指定。
引用:
time = Time.now # => Thu Jan 18 06:10:17 CST 2007
time.to_formatted_s(:time) # => "06:10"
time.to_s(:time) # => "06:10"
time.to_formatted_s(:db) # => "2007-01-18 06:10:17"
time.to_formatted_s(:number) # => "20070118061017"
time.to_formatted_s(:short) # => "18 Jan 06:10"
time.to_formatted_s(:long) # => "January 18, 2007 06:10"
time.to_formatted_s(:long_ordinal) # => "January 18th, 2007 06:10"
time.to_formatted_s(:rfc822) # => "Thu, 18 Jan 2007 06:10:17 -0600"
(Time.to_s是一个别名)
您也可以定义自己的格式-通常在初始化器中(感谢Dave Newton指出了这一点)。它是这样做的:
# config/initializers/time_formats.rb
Time::DATE_FORMATS[:month_and_year] = "%B %Y"
Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") }
发布于 2012-06-19 04:24:47
Easiest is to use strftime
(docs)。
如果它是在视图端使用的,最好将它包装在一个helper中。
发布于 2014-08-29 17:39:47
@CMW的答案是金钱上的重击。我已经添加了这个答案作为如何配置初始化器的示例,以便Date和Time对象都能获得格式
config/initializers/time_formats.rb s.rb
date_formats = {
concise: '%d-%b-%Y' # 13-Jan-2014
}
Time::DATE_FORMATS.merge! date_formats
Date::DATE_FORMATS.merge! date_formats
另外,以下两个命令将遍历当前环境中的所有DATE_FORMATS
,并以每种格式显示今天的日期和时间:
Date::DATE_FORMATS.keys.each{|k| puts [k,Date.today.to_s(k)].join(':- ')}
Time::DATE_FORMATS.keys.each{|k| puts [k,Time.now.to_s(k)].join(':- ')}
https://stackoverflow.com/questions/11090451
复制相似问题