日本の和暦に変換します。
以下のコードをアプリケーションのGemfileに追記します。
gem 'era_ja'
そして、以下をのコマンドを実行します。
$ bundle
もしくは
$ gem install era_ja
.travis.yml を確認してください。
NOTE :: era_ja0.4.0からruby1.9.3をサポートしていません。
引数としてstrftimeのフォーマット文字列を使用出来ます。
EraJa#to_eraメソッドでの追加のフォーマット文字列は以下の通りです。
- %o: 元号(アルファベット)
- %O: 元号(漢字)
- %1O: 元号(漢字1文字)
- %E: 元号の年
- %-E: 元号の年(1から9まで1ケタ)
- %K: 元号の年(漢数字) 2年目以降は数字
- %J: 漢数字
require 'era_ja'
Time.mktime(2012,4,29).to_era # => "H24.04.29"
Time.mktime(2012,4,29).to_era("%O%E年%-m月%d日") # => "平成24年4月29日"
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
require 'era_ja
Date.new(2012,4,29).to_era # => "H24.04.29"
Date.new(2012,4,29).to_era("%O%E年%-m月%d日") # => "平成24年4月29日"
Date.new(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
Time.mktime(2012,4,29).to_era("%JY年%Jm月%Jd日") # => "二千十二年四月二十九日"
Date.new(2012,4,29).to_era("%JY年%Jm月%Jd日") # => "二千十二年四月二十九日"
もし1年目の場合は 元
2年目以降を数字にしたい場合は %K
を使用することができます。
Time.mktime(2019,5,1).to_era("%O%KE年%m月%d日") # => "令和元年05月01日"
Time.mktime(2020,5,1).to_era("%O%KE年%m月%d日") # => "令和02年05月01日"
Date.new(2019,5,1).to_era("%O%KE年%m月%d日") # => "令和元年05月01日"
Date.new(2020,5,1).to_era("%O%KE年%m月%d日") # => "令和02年05月01日"
もし1桁の元号文字列でコンバートしたい場合、 %1O
を使用することができます。
require 'era_ja'
Time.mktime(2012,4,29).to_era("%1O%E年%m月%d日") # => "平24年4月29日"
もしデフォルトの元号文字列以外の文字列でコンバートしたい場合、 era_names
を使用することができます。
require 'era_ja'
Time.mktime(2012,4,29).to_era(era_names: { heisei: ['h', '平'] }) # => "h24.04.29"
Time.mktime(2012,4,29).to_era("%O%E年%-m月%d日", era_names: { heisei: ['h', '平'] }) # => "平24年4月29日"
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日", era_names: { heisei: ['h', '平'] }) # => "平二十四年四月二十九日"
# same as Date
日付が元号に変換できるかどうかを判定するために、era_convertible?
を使うことができます。
require 'era_ja'
Time.mktime(1868,9,7).era_convertible? #=> false
Time.mktime(1868,9,8).era_convertible? #=> true
元号に変換できない日付に関しては、Noteセクション を参照してください。
問題を報告したり、機能追加の要望する場合はgithubのIssuesに登録してください。 https://github.com/tomiacannondale/era_ja/issues
- フォークして
- feature branchを作成して (
git checkout -b my-new-feature
) - 変更をコミットして (
git commit -am 'Added some feature'
) - ブランチをプッシュして (
git push origin my-new-feature
) - プルリクエストをください
元号については以下の問題点があります。
- 明治の開始を1868年9月8日としていますが旧暦での日付です。
- 大正、昭和の開始日はそれぞれ明治、大正の最終日と同日です。
tomi [email protected]
MITライセンスです。詳細は LICENSE を参照してください。