QA@IT

日付と解釈できる文字列を Date や Time オブジェクトに変換したい

2407 PV

3 days agoyesterday などの文字列を、いい感じに Date または Time オブジェクトに変換したいと思っています。
Time.parse や ActiveSupport を駆使すれば自前で作れそうではありますが、既に公開されているライブラリは無いのでしょうか。

回答

Chronicが有名ですね。 https://github.com/mojombo/chronic
(以下READMEよりこぴぺ)

require 'chronic'

Time.now   #=> Sun Aug 27 23:18:25 PDT 2006

Chronic.parse('tomorrow')
  #=> Mon Aug 28 12:00:00 PDT 2006

Chronic.parse('monday', :context => :past)
  #=> Mon Aug 21 12:00:00 PDT 2006

Chronic.parse('this tuesday 5:00')
  #=> Tue Aug 29 17:00:00 PDT 2006

Chronic.parse('this tuesday 5:00', :ambiguous_time_range => :none)
  #=> Tue Aug 29 05:00:00 PDT 2006

Chronic.parse('may 27th', :now => Time.local(2000, 1, 1))
  #=> Sat May 27 12:00:00 PDT 2000

Chronic.parse('may 27th', :guess => false)
  #=> Sun May 27 00:00:00 PDT 2007..Mon May 28 00:00:00 PDT 2007

Chronic.parse('6/4/2012', :endian_precedence => :little)
  #=> Fri Apr 06 00:00:00 PDT 2012
編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。