http://jadtfmt.rubyforge.org/
http://rubyforge.org/projects/jadtfmt/
これは何?
ICUを使ってTimeオブジェクトを和暦で出力します。昭和64年の判定とかがわりと正確です(たぶん)。OSによっては寛政とか寛永とか出力できるかもしれないです。
書式についてはこちらを参照。
しばらくしたらRubyForgeに移す予定。
ビルド/インストール
gem install jadtfmt
LinuxでのビルドにはICUの開発用パッケージが必要です。
Windowsではicuin38.dllとicuuc38.dllとicudt38.dllが必要です。
サンプルコード
普通に使う
$KCODE = 'e' require 'jadtfmt' jadtfmt = JapaneseDateFormat.new('Gy年M月d日') puts jadtfmt.format(Time.now) puts jadtfmt.format(Time.mktime(1989, 1, 1)) puts jadtfmt.format_attrs(1800, 1, 1) jadtfmt.apply_pattern("Gyy年 / MM月 / dd日"); puts jadtfmt.format(Time.mktime(1989, 2, 1))
平成20年4月17日
昭和64年1月1日
寛政12年1月1日
平成01年 / 02月 / 01日
Timeオブジェクトのメソッドとして呼び出す
$KCODE = 'e' require 'jadtfmt' puts Time.now.jadtfmt('Gy年M月d日') puts Time.mktime(1989, 1, 1).jadtfmt('Gy年M月d日')
平成20年4月17日
昭和64年1月1日
jastrftimeメソッドを使う
$KCODE = 'e' require 'jadtfmt' puts Time.now.jastrftime('%G%n/%m/%d(%E)') puts Time.mktime(1989, 1, 1).jastrftime('%G%N/%m/%d(%E)')
平成20/04/17(木)
昭和64/01/01(日)
- %G - 年号
- %N - 和暦の年(01〜)
- %n - 和暦の年(1〜)
- %E - 曜日