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

Pythonで日付文字列から曜日を取得する方法を完全ガイド!初心者でもわかる日時処理入門

Pythonで日付文字列から曜日を取得する方法(strftime の %A / %a)
Pythonで日付文字列から曜日を取得する方法(strftime の %A / %a)

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

生徒

「Pythonで書かれた日付の文字列から曜日を調べたいんですが、やり方がわからなくて困っています。」

先生

「Pythonでは、日付を表す文字列をdatetimeに変換して、strftimeという機能を使うと曜日を取り出せますよ。」

生徒

「曜日の表し方って複数ありますよね?英語のフル綴りや短い綴りとか。」

先生

「その通りです。Pythonでは%A%aという記号を使い分けて簡単に取得できます。仕組みを順番に見ていきましょう。」

1. Pythonで日付文字列を曜日に変換する基本の流れ

1. Pythonで日付文字列を曜日に変換する基本の流れ
1. Pythonで日付文字列を曜日に変換する基本の流れ

Pythonで日付の文字列から曜日を取得するには、まず文字列を日付として扱える形に変換します。これはdatetime.strptimeという機能を使います。そのあとにstrftimeで曜日を取り出します。曜日を取り出すときに指定する%A%aは「書式指定子」と呼ばれ、曜日の出力形式を決める記号です。%Aは英語の曜日名のフル表記、%aは短縮表記になります。英語で出力されるのは国際的なルールに合わせた仕様です。

2. 日付文字列をdatetimeに変換する方法

2. 日付文字列をdatetimeに変換する方法
2. 日付文字列をdatetimeに変換する方法

日付を示す文字列はそのままでは曜日を取り出せません。そのため、まずdatetimeという日付を扱うための特別な型に変換します。これは「型変換」と呼ばれ、文字列を日付として理解してもらうための重要な手順です。次の例では「2025-01-15」という文字列を日付として読み取ります。


from datetime import datetime

date_text = "2025-01-15"
dt = datetime.strptime(date_text, "%Y-%m-%d")
print(dt)

上のコードでは%Yが年、%mが月、%dが日を表す書式です。この書式と日付の並びが一致すると、正しく変換できます。

3. strftimeで曜日を取り出す(%A と %a)

3. strftimeで曜日を取り出す(%A と %a)
3. strftimeで曜日を取り出す(%A と %a)

曜日を取り出すには、変換した日付に対してstrftimeを使います。大文字の%Aは完全な英語表記の曜日、小文字の%aは短縮表記になります。どちらもよく使われますが、APIなどでは短縮表記を使うこともあります。


from datetime import datetime

date_text = "2025-01-15"
dt = datetime.strptime(date_text, "%Y-%m-%d")

weekday_full = dt.strftime("%A")
weekday_short = dt.strftime("%a")

print(weekday_full)
print(weekday_short)

出力例:


Wednesday
Wed

英語で出てくるのはPythonが国際的な規格に合わせているためです。英語の曜日表記に慣れていない人でも、決まった意味を持つので覚えやすいでしょう。

4. よくあるつまずきと対処法

4. よくあるつまずきと対処法
4. よくあるつまずきと対処法

初心者が日付文字列から曜日を取得するときに混乱しやすいポイントをいくつか紹介します。まず、日付の書式が合っていないと、Pythonは正しい日付として読み取ることができません。例えば、文字列の形式が「2025/01/15」とスラッシュ区切りになっている場合は、strptimeの書式も同じ区切りにする必要があります。また、月や日が一桁の場合はゼロの有無にも注意が必要です。ゼロ埋めがないときは%m%dではなく%-mのような指定が必要なこともあります。環境によっては動作が異なるため、自動化する場合は特に慎重に扱うと失敗しにくくなります。

5. いろいろな日付形式に対応する応用的な例

5. いろいろな日付形式に対応する応用的な例
5. いろいろな日付形式に対応する応用的な例

日付の書き方はひとつではありません。「2025年01月15日」のように日本語が含まれる書き方や、「01-15-2025」のように月が先に来る書き方もあります。Pythonでは、書式を工夫することでこれらの形式にも柔軟に対応できます。実務では外部システムから受け取ったデータの形式がばらばらなことも多いため、書式指定の理解は非常に役立ちます。特に業務システムでは日付の扱いが頻繁に出てくるため、曜日の取得が求められる場面も少なくありません。


from datetime import datetime

date_text = "2025年01月15日"
dt = datetime.strptime(date_text, "%Y年%m月%d日")
print(dt.strftime("%A"))

6. 曜日を日本語に変換するアイデア

6. 曜日を日本語に変換するアイデア
6. 曜日を日本語に変換するアイデア

Pythonでは曜日が英語で出力されますが、日本語に変換したい場合もあります。その場合は、自分で対応表を作る方法が簡単です。「Monday」を「月曜日」、「Tuesday」を「火曜日」というように辞書を作成して対応させるだけで実現できます。英語の曜日名と日本語の曜日名は固定なので、この方法は扱いやすく、初心者でも無理なく使えます。日本語で曜日を表示したいアプリやデータ出力に向いており、日常的な用途にも応用できます。


from datetime import datetime

weekday_map = {
    "Monday": "月曜日",
    "Tuesday": "火曜日",
    "Wednesday": "水曜日",
    "Thursday": "木曜日",
    "Friday": "金曜日",
    "Saturday": "土曜日",
    "Sunday": "日曜日",
}

date_text = "2025-01-15"
dt = datetime.strptime(date_text, "%Y-%m-%d")

weekday_jp = weekday_map[dt.strftime("%A")]
print(weekday_jp)

出力例:


水曜日
カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.6
Java&Spring記事人気No6
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.7
Java&Spring記事人気No7
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説