MAGAZINE

ルーターマガジン

Ruby

新元号「令和」にも対応!Rubyで和暦をパースするwareki gemの使い方

2019.06.14
Pocket

今回は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、便利!

Pocket

CONTACT

お問い合わせ・ご依頼はこちらから