Python|日付を日本語表記にする方法

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-stringformat()で整数値を組み合わせる方法が安定して使えます。

4-2. 曜日表示は日本語に変換が必要

strftime("%A")では「Thursday」など英語で出力されるため、日本語化するには辞書を使って手動で変換する必要があります。

4-3. 未来や過去の日付でも同様に使える

datetimetimedeltaと組み合わせて、未来・過去の日付でも同様のフォーマットが可能です。

 

5. まとめ

  • strftime()を使えば、Pythonで日付を柔軟に文字列化できる
  • 日本語表記には「年」「月」「日」を組み合わせれば自然な形にできる
  • Windowsでゼロ埋めを避けるにはf-stringを使う
  • 曜日の日本語表示には辞書変換が必要

日付の日本語表記は、帳票出力や日本人向けUIに欠かせないスキルです。実務でもよく使う処理なので、ぜひ手を動かしながらマスターしてください!

学習のコツは、「まずはstrftime()の書式指定子に慣れること」。その上で、辞書変換やf-stringとの組み合わせに挑戦しましょう。

タイトルとURLをコピーしました