この記事では、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 ドキュメント |