1. はじめに
Pythonで日付を扱う際、標準の表記では「2025-07-24」や「2025/07/24」などの形式が使われます。しかし、日本語の文書や帳票、ユーザー向けの画面では「2025年7月24日」のような日本語表記が求められることも多いです。
本記事では、Pythonで日付を日本語表記に変換する方法について、基本的な関数から応用的なフォーマット、さらには曜日付きの表示まで、初心者にもわかりやすく丁寧に解説します。
この知識を身につけることで、日本語の帳票出力やユーザーインターフェースの改善に役立ちます。
2. Pythonで日付を日本語表記にする基本解説
2-1. datetime.strftime()で日本語フォーマットに変換する
Pythonでは、datetime
モジュールのstrftime()
メソッドを使って、日付を自由に文字列に変換できます。
以下は、「YYYY年M月D日」の形式で日本語表示する例です。
from datetime import datetime
# 現在の日付を取得
today = datetime.today()
# 日本語形式にフォーマット
japanese_date = today.strftime("%Y年%m月%d日")
print(japanese_date)
実行結果:
2025年07月24日
%Y
:西暦4桁、%m
:月2桁、%d
:日2桁という形式に加えて、「年」「月」「日」という日本語の文字列を挿入することで、自然な表記にできます。
2-2. ゼロ埋めを避けて自然な日本語にする
「7月」や「3日」など、1桁の月・日を自然な表記にしたい場合は、%-m
や%-d
を使います(ただし、Windows環境では対応していない点に注意)。
# LinuxやMacで自然な日本語日付を出力(Windows非対応)
japanese_date = today.strftime("%Y年%-m月%-d日")
print(japanese_date)
実行結果:
2025年7月24日
※Windowsでは%-m
が使えないため、以下のような代替方法も後述します。
3. よくある使い方・応用例
3-1. 日本語で曜日付きの日付を表示する
%A
を使うと、曜日を英語で表示できますが、日本語にするには辞書を使って変換する必要があります。
# 曜日を日本語に変換する辞書
weekday_jp = {
0: "月曜日",
1: "火曜日",
2: "水曜日",
3: "木曜日",
4: "金曜日",
5: "土曜日",
6: "日曜日"
}
today = datetime.today()
weekday = today.weekday() # 月曜日=0
# 日本語日付 + 曜日
japanese_date = today.strftime("%Y年%m月%d日")
full_date = f"{japanese_date}({weekday_jp[weekday]})"
print(full_date)
実行結果:
2025年07月24日(木曜日)
3-2. Windowsでも自然な「7月24日」表記にする方法
Windows環境では%-m
や%-d
が使えないため、属性値から整数を取得して文字列に整形する方法が有効です。
# 日付を「YYYY年M月D日」に変換(ゼロ埋めなし)
date_obj = datetime.today()
japanese_date = f"{date_obj.year}年{date_obj.month}月{date_obj.day}日"
print(japanese_date)
実行結果:
2025年7月24日
3-3. 曜日も含めた自然な日本語フォーマット
# フル日本語形式(曜日付き・ゼロ埋めなし)
date_obj = datetime.today()
weekday_jp = ["月", "火", "水", "木", "金", "土", "日"]
weekday_name = weekday_jp[date_obj.weekday()]
japanese_full = f"{date_obj.year}年{date_obj.month}月{date_obj.day}日({weekday_name})"
print(japanese_full)
実行結果:
2025年7月24日(木)
4. 注意点・エラー対策
4-1. Windowsではstrftimeの書式に制限あり
LinuxやMacでは使える%-m
や%-d
は、Windowsでは未サポートです。代わりにf-string
やformat()
で整数値を組み合わせる方法が安定して使えます。
4-2. 曜日表示は日本語に変換が必要
strftime("%A")
では「Thursday」など英語で出力されるため、日本語化するには辞書を使って手動で変換する必要があります。
4-3. 未来や過去の日付でも同様に使える
datetime
をtimedelta
と組み合わせて、未来・過去の日付でも同様のフォーマットが可能です。
5. まとめ
strftime()
を使えば、Pythonで日付を柔軟に文字列化できる- 日本語表記には「年」「月」「日」を組み合わせれば自然な形にできる
- Windowsでゼロ埋めを避けるにはf-stringを使う
- 曜日の日本語表示には辞書変換が必要
日付の日本語表記は、帳票出力や日本人向けUIに欠かせないスキルです。実務でもよく使う処理なので、ぜひ手を動かしながらマスターしてください!
学習のコツは、「まずはstrftime()の書式指定子に慣れること」。その上で、辞書変換やf-stringとの組み合わせに挑戦しましょう。