【问题标题】:How to format datetime in ruby with Sinatra and Twitter Gem如何使用 Sinatra 和 Twitter Gem 格式化 ruby 中的日期时间
【发布时间】:2011-10-11 13:39:36
【问题描述】:
我对 ruby 完全陌生,我正在尝试格式化从 Twitter gem 中提取的 created_at 字段。我知道在 Rails 中你可以使用 time_ago_in_words 作为 rails,但我想知道如何在普通的 ruby 中做到这一点。事实上,我想知道如何格式化以“Mon, 10 Oct 2011 20:13:10 +0000”开头的日期。这是标准日期格式吗?
任何帮助都会很棒。
【问题讨论】:
标签:
ruby
datetime
twitter
gem
sinatra
【解决方案1】:
如果您使用的是 Ruby 1.9,Time.parse 可以很好地理解您的格式:
ruby-1.9.2-p180 :003 > t = Time.parse("Mon, 10 Oct 2011 20:13:10 +0000")
=> 2011-10-10 23:13:10 +0300
ruby-1.9.2-p180 :004 > t.month
=> 10
ruby-1.9.2-p180 :005 > t.strftime("%d-%m-%Y")
=> "10-10-2011"
在 1.8 中,DateTime 有类似的方法:
irb(main):004:0> require 'date'
=> true
irb(main):006:0> t = DateTime.parse("Mon, 10 Oct 2011 20:13:10 +0000")
=> #<DateTime: 2011-10-10T20:13:10+00:00 (21218503759/8640,0/1,2299161)>
irb(main):007:0> t.month
=> 10
如果您想自己实现 distance_of_time_in_words,最好的起点可能是查看its source(单击该页面上的查看源链接)。