2011-12-15

rubyで和暦を使いたいとき

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
あまり和暦は使いたくないのですが、どうしても使わないといけないこともあります。

まずは和暦を読み取るときです。
H23.12.15
のような形式であれば、

require 'date'  
d = Date.parse("H23.12.15")
puts d.to_s #2011-12-15  
という感じで読み取ることができます。

平成とか漢字とかも使いたい場合は、
http://d.hatena.ne.jp/glpgsinc/20110502/1304332167
を参考にするのがよいかなぁと思います。


逆に、和暦出力したい場合は、
http://fistfvck.sakura.ne.jp/w/ruby/reverserecipe/048_%E6%97%A5%E6%99%82%E3%82%92%E5%92%8C%E6%9A%A6%E8%A1%A8%E8%A8%98%E3%81%A7%E5%87%BA%E5%8A%9B%E3%81%97%E3%81%9F%E3%81%84
で紹介されている手段を使うのがよいかなぁと思います。

wget http://svn.coderepos.org/share/platform/tdiary/plugin/jyear.rb
でtdiaryで使っているjyearというのを取得して使う感じです。
これで%Kという和暦用の変換コードが使えるようになります。
こんな感じです。

t = Time.now
t.strftime("%Y-%m-%d")      # "2009-07-23"
t.strftime("%K年%m月%d日")  # "平成23年12月15日"
これで西暦と和暦の相互変換ができる感じです。
コメントを投稿