この記事では、Pythonで曜日を取得する方法を解説します。
日付を取得したい場合は以下の記事を参考にしてください。
スポンサーリンク
曜日を整数で取得する
曜日を取得するにはdatetimeモジュールのdateクラスのweekdayメソッドを使います。weekdayメソッドは、曜日を「0(月曜)〜6(日曜)」の整数で返します。
import datetime today = datetime.date.today() print(f'日付: {today}, 曜日{today.weekday()}')
実行結果
日付: 2022-05-18, 曜日2
指定した日時の曜日を取得することも可能です。
import datetime day = datetime.date(2022, 1, 1) print(f'日付: {today}, 曜日{today.weekday()}')
実行結果
日付: 2022-05-18, 曜日2
曜日を文字列で取得する
曜日を整数で受け取っても使いづらいので文字列で取得する方法も見ていきましょう!
整数から変換する
先ほど紹介したweekdayメソッドで取得した曜日(整数)を文字列で取得したい場合は列挙型のIntEnumを使うと簡単です。
import datetime from enum import IntEnum, auto # 曜日の列挙型 class Week(IntEnum): Monday = 0 Tuesday = auto() Wednesday = auto() Thursday = auto() Friday = auto() Saturday = auto() Sunday = auto() # 今日の取得 today = datetime.date.today() # 日付の曜日(整数)の出力 print(f'日付: {today}, 曜日{today.weekday()}') # 曜日の判定と出力 if Week.Monday == today.weekday(): print(Week.Monday.name) elif Week.Tuesday == today.weekday(): print(Week.Tuesday.name) elif Week.Wednesday == today.weekday(): print(Week.Wednesday.name) elif Week.Thursday == today.weekday(): print(Week.Thursday.name) elif Week.Friday == today.weekday(): print(Week.Friday.name) elif Week.Saturday == today.weekday(): print(Week.Saturday.name) elif Week.Sunday == today.weekday(): print(Week.Sunday.name)
実行結果
日付: 2022-05-18, 曜日2 Wednesday
strftimeメソッドを使う
dateオブジェクトやdatetimeオブジェクトがサポートしているstrftime()を使うことで曜日を取得することができます。引数に書式コードの%a、または%Aを使うことでロケールの曜日名を文字列で取得することができます。
import datetime today = datetime.date.today() print(today.strftime('%a')) print(today.strftime('%A'))
実行結果
Wed Wednesday
localeモジュールのlocale.setlocale()でlocale.LC_TIME(時刻を書式化するためのロケールカテゴリ)を設定することで日本語やその他の表記で曜日を取得することができます。
import datetime import locale # ロケールを日本語に変更 locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8') today = datetime.date.today() print(today.strftime('%a')) print(today.strftime('%A')) # ロケールをフランス語に変更 locale.setlocale(locale.LC_TIME, 'fr_FR.UTF-8') today = datetime.date.today() print(today.strftime('%a')) print(today.strftime('%A'))
実行結果
水 水曜日 Mer Mercredi
| locale --- 国際化サービス — Python 3.10.4 ドキュメント |
| strftime() と strptime() の書式コード - datetime --- 基本的な日付型および時間型 — Python 3.10.4 ドキュメント |


