カテゴリ: Python 更新日: 2026/01/13

Pythonで日本の元号を扱う方法を徹底解説!令和・平成の変換もバッチリ対応

Pythonで日本の元号(令和・平成)を扱う方法(jaconv / datetime)
Pythonで日本の元号(令和・平成)を扱う方法(jaconv / datetime)

先生と生徒の会話形式で理解しよう

生徒

「Pythonで、日付を令和とか平成の元号で表示したいんですが、できますか?」

先生

「はい、日本の元号(げんごう)を扱うにはちょっと工夫が必要ですが、Pythonでも可能ですよ!」

生徒

「西暦は表示できるけど、和暦はできないと思ってました…」

先生

「実は、datetimeモジュールと、外部ライブラリのjapanerajaconvを使うことで、令和・平成といった日本の元号を扱うことができるんです。順を追って見ていきましょう。」

-

1. Pythonで元号を扱うには?

1. Pythonで元号を扱うには?
1. Pythonで元号を扱うには?

Python(パイソン)で日付を扱うときには、datetimeモジュールが基本です。しかし、日本の元号(令和・平成・昭和など)は標準ではサポートされていません。

そこで登場するのが、外部ライブラリのjapaneraです。このライブラリを使えば、和暦(われき)への変換や表示が簡単にできます。

2. japaneraライブラリのインストール

2. japaneraライブラリのインストール
2. japaneraライブラリのインストール

japaneraは外部ライブラリなので、最初にインストールが必要です。コマンドプロンプトやターミナルで以下のように入力してください。


pip install japanera

pipはPythonのライブラリを追加するためのコマンドです。初めて使う場合は「ぴっぷ」と覚えておくとよいでしょう。

3. datetimeから令和や平成に変換してみよう

3. datetimeから令和や平成に変換してみよう
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. 平成・昭和など過去の元号も使えるの?

4. 平成・昭和など過去の元号も使えるの?
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. 元号から西暦に変換する方法

5. 元号から西暦に変換する方法
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で文字の変換も覚えておこう

6. jaconvで文字の変換も覚えておこう
6. jaconvで文字の変換も覚えておこう

元号の表示に関連して、全角・半角の変換なども必要になることがあります。そういうときに便利なのがjaconvライブラリです。

インストールはこちら:


pip install jaconv

たとえば「平成31年」を数字として扱うためには、全角→半角変換が必要になることがあります。


import jaconv

zenkaku = "31"
hankaku = jaconv.z2h(zenkaku, digit=True)
print(hankaku)

31

z2h()は、全角(ぜんかく)を半角(はんかく)に変える関数です。

7. 実用例:入力された元号と年から西暦を判定

7. 実用例:入力された元号と年から西暦を判定
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. 注意点とエラー回避のポイント

8. 注意点とエラー回避のポイント
8. 注意点とエラー回避のポイント
  • 日付が元号の範囲外の場合はエラーになります
    → たとえば、平成は1989年1月8日から2019年4月30日まで。それ以外の日付を平成として指定するとエラーになります。
  • 入力ミスを避けるため、元号名や数字は正確に
    → 入力チェックを組み込むと、より安全なアプリケーションになります。
  • ライブラリは事前にインストールしておく
    pip install japanerapip install jaconvを忘れずに実行しましょう。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPのマルチバイト文字列を正しく扱う方法!初心者向けにmb_strlenとmb_substrをやさしく解説
New2
PHP
PHP の break, continue の使い方を完全解説!初心者でもわかるループ制御
New3
Python
Pythonで日本の元号を扱う方法を徹底解説!令和・平成の変換もバッチリ対応
New4
Python
Pythonの三項演算子とは?一行で条件分岐を記述する方法
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.3
Java&Spring記事人気No3
Python
Pythonのライブラリとは?標準ライブラリとサードパーティライブラリの違いを初心者向けに解説!
No.4
Java&Spring記事人気No4
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
PHP
PHP の基本構文(開始タグ・コメント・インデント)を完全ガイド!初心者向け解説
No.8
Java&Spring記事人気No8
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
-
-