http://jadtfmt.rubyforge.org/smpdtfmt/
http://rubyforge.org/projects/jadtfmt/
これは何?
ICUのSimpleDateFormatのラッパです。
実装はJapaneseDateFormatとほとんど同じです。
ビルド/インストール
gem install smpdtfmt
LinuxでのビルドにはICUの開発用パッケージが必要です。
Windowsではicuin38.dllとicuuc38.dllとicudt38.dllが必要です。
サンプルコード
時刻をフォーマットする
require 'smpdtfmt' smpdtfmt = SimpleDateFormat.new('yyyy/MM/dd') puts smpdtfmt.format(Time.now) puts smpdtfmt.format(Time.mktime(1989, 1, 1)) puts smpdtfmt.format_attrs(1800, 1, 1) smpdtfmt.apply_pattern("yyyy-MM-dd"); puts smpdtfmt.format(Time.mktime(1989, 2, 1))
2008/04/19
1989/01/01
1800/01/01
1989-02-01
時刻をパースする
require 'smpdtfmt' smpdtfmt = SimpleDateFormat.new('yyyy/MM/dd') puts smpdtfmt.parse('2008/10/10') puts smpdtfmt.parse('2008/10/00') smpdtfmt.lenient = false puts smpdtfmt.parse('2008/10/00')
Fri Oct 10 00:00:00 +0900 2008
Tue Sep 30 00:00:00 +0900 2008
test.rb:10:in `parse': U_ILLEGAL_ARGUMENT_ERROR (RuntimeError)
from test.rb:10
Timeオブジェクトのメソッドとして呼び出す
require 'smpdtfmt' puts Time.now.dtfmt('yyyy/MM/dd') puts Time.icuparse('yyyy-MM-dd', '2008-10-10')
2008/04/19
Fri Oct 10 00:00:00 +0900 2008