Pythonで日本の元号を扱う方法を徹底解説!令和・平成の変換もバッチリ対応
生徒
「Pythonで、日付を令和とか平成の元号で表示したいんですが、できますか?」
先生
「はい、日本の元号(げんごう)を扱うにはちょっと工夫が必要ですが、Pythonでも可能ですよ!」
生徒
「西暦は表示できるけど、和暦はできないと思ってました…」
先生
「実は、datetimeモジュールと、外部ライブラリのjapaneraやjaconvを使うことで、令和・平成といった日本の元号を扱うことができるんです。順を追って見ていきましょう。」
1. Pythonで元号を扱うには?
Python(パイソン)で日付を扱うときには、datetimeモジュールが基本です。しかし、日本の元号(令和・平成・昭和など)は標準ではサポートされていません。
そこで登場するのが、外部ライブラリのjapaneraです。このライブラリを使えば、和暦(われき)への変換や表示が簡単にできます。
2. japaneraライブラリのインストール
japaneraは外部ライブラリなので、最初にインストールが必要です。コマンドプロンプトやターミナルで以下のように入力してください。
pip install japanera
pipはPythonのライブラリを追加するためのコマンドです。初めて使う場合は「ぴっぷ」と覚えておくとよいでしょう。
3. datetimeから令和や平成に変換してみよう
それでは、実際にdatetimeオブジェクトの日付を令和や平成の元号に変換してみましょう。
import datetime
import japanera
date = datetime.date(2024, 1, 15)
era = japanera.gengou(date)
print(f"{date} は {era} です")
2024-01-15 は 令和6年 です
このように、令和の年数が自動で計算されます。
4. 平成・昭和など過去の元号も使えるの?
もちろんです。japanera.gengou()は、過去の年月にも対応していて、自動的に適切な元号に変換してくれます。
import datetime
import japanera
date = datetime.date(1995, 3, 10)
era = japanera.gengou(date)
print(f"{date} は {era} です")
1995-03-10 は 平成7年 です
このように、昭和・平成・令和すべてに対応しています。
5. 元号から西暦に変換する方法
今度は逆に、元号と年数から西暦に変換したいケースです。たとえば「平成31年」は2019年になります。このような場合もjapaneraで対応可能です。
from japanera import EraDate
era_date = EraDate('平成', 31, 4, 30)
print(era_date.to_date())
2019-04-30
EraDateクラスを使って、和暦の日付から西暦(グレゴリオ暦)に変換できます。
6. jaconvで文字の変換も覚えておこう
元号の表示に関連して、全角・半角の変換なども必要になることがあります。そういうときに便利なのがjaconvライブラリです。
インストールはこちら:
pip install jaconv
たとえば「平成31年」を数字として扱うためには、全角→半角変換が必要になることがあります。
import jaconv
zenkaku = "31"
hankaku = jaconv.z2h(zenkaku, digit=True)
print(hankaku)
31
z2h()は、全角(ぜんかく)を半角(はんかく)に変える関数です。
7. 実用例:入力された元号と年から西暦を判定
実際のアプリケーションでは、ユーザーが「平成31年」のように入力してくるケースもあります。その場合の処理例です。
from japanera import EraDate
era = input("元号(例:令和, 平成):")
year = int(input("年(数字のみ):"))
month = int(input("月:"))
day = int(input("日:"))
era_date = EraDate(era, year, month, day)
print(f"西暦では {era_date.to_date()} です")
元号(例:令和, 平成):平成
年(数字のみ):31
月:4
日:30
西暦では 2019-04-30 です
このように、元号を使った日付入力にも対応可能になります。
8. 注意点とエラー回避のポイント
- 日付が元号の範囲外の場合はエラーになります
→ たとえば、平成は1989年1月8日から2019年4月30日まで。それ以外の日付を平成として指定するとエラーになります。 - 入力ミスを避けるため、元号名や数字は正確に
→ 入力チェックを組み込むと、より安全なアプリケーションになります。 - ライブラリは事前にインストールしておく
→pip install japaneraやpip install jaconvを忘れずに実行しましょう。