MAGAZINE
ルーターマガジン
Ruby
新元号「令和」にも対応!Rubyで和暦をパースするwareki gemの使い方
2019.06.14
今回はRubyで和暦を扱う方法をご紹介します。
結論としては、warekiというgemを入れてあげるとDateクラスを拡張して大抵の和暦表記をパースできます。
wareki gemとは
日本の和暦をサポートするライブラリ。Dateクラスを拡張することで和暦を扱えるようになります。 詳細は本家READMEを参照。 https://github.com/sugi/wareki
インストール
Gemfileに記載するか、
gem 'wareki'
直接gem installしてください。
gem install wareki
和暦をパースする
warekiをrequireすれば、Dateクラスが拡張され、和暦がパースできるようになります。
require 'wareki'
#平成
Date.parse("平成4年 10月 5日")
=> #<Date: 1992-10-05 ((2448901j,0s,0n),+0s,2299161j)>
#一文字元号
Date.parse("㍻4年 10月 5日")
=> #<Date: 1992-10-05 ((2448901j,0s,0n),+0s,2299161j)>
#旧字体の和暦
Date.parse("慶應2年 4月 1日")
=> #<Date: 1866-05-15 ((2402737j,0s,0n),+0s,2299161j)>
#月の別名
Date.parse("慶應2年 如月 1日")
=> #<Date: 1866-03-17 ((2402678j,0s,0n),+0s,2299161j)>
ちなみにWareki::Dateで直接実行することも可能です。
require 'wareki'
#平成
Wareki::Date.parse("平成4年 10月 5日")
=> #<Date: 1992-10-05 ((2448901j,0s,0n),+0s,2299161j)>
令和にも対応!
新元号・令和にも対応しています。
Date.parse("令和元年 5月 1日")
=> #<Date: 2019-05-01 ((2458605j,0s,0n),+0s,2299161j)>
ちなみに改元前の日付の令和を入れたところ普通にパースされました。
Date.parse("令和元年 4月 1日")
=> #<Date: 2019-04-01 ((2458575j,0s,0n),+0s,2299161j)>
まとめ
以上、簡単でしたがRubyで和暦パースする方法をご紹介しました。
wareki gem、便利!
CONTACT
お問い合わせ・ご依頼はこちらから