20120119
という形式で日付を表す文字列'YYYYMMDD'
があります。
この文字列を解析して、日付を表すRubyオブジェクトにしたいので、今日の日付との差分などの基本的な日付計算を行うことができます。
バージョン1.8.6(必須)を使用しています。
Date.strptime
Rubyの標準ライブラリで提供されるメソッド:
require 'date'
string = "20120723"
date = Date.strptime(string,"%Y%m%d")
あるいは、コメントで提案されているように、Date.parse
、この場合ヒューリスティックは正しく機能するため:
require 'date'
string = "20120723"
date = Date.parse(string)
日付が無効な場合、どちらもArgumentError
をレイズします:
require 'date'
Date.strptime('2012-March', '%Y-%m')
#=> ArgumentError: invalid date
Date.parse('2012-Foo') # Note that '2012-March' would actually work here
#=> ArgumentError: invalid date
時間、分なども表す場合は、 DateTime を確認する必要があります。 DateTimeは、parse
の解析メソッドのように機能するDate
メソッドも提供します。 strptime
についても同様です。