Python で今日の日付をタイムゾーン(時差)こみで取得する

時差(タイムゾーン)こみで時刻を取得するときは ZoneInfo を使う。

from datetime import datetime
from zoneinfo import ZoneInfo

# 日本時間(JST)で現在の日付時刻を取得
now_jst = datetime.now(ZoneInfo("Asia/Tokyo"))

print(f"日本時間: {now_jst}")
print(f"日付のみ: {now_jst.date()}")
# 日本時間: 2025-06-12 23:49:20.061634+09:00
# 日付のみ: 2025-06-12

# UTC時間
now_utc = datetime.now(ZoneInfo("UTC"))

print(f"UTC時間: {now_utc}")
# UTC時間: 2025-06-12 14:49:20.061777+00:00

# アメリカ東部時間
now_est = datetime.now(ZoneInfo("America/New_York"))

print(f"東部時間: {now_est}")
# 東部時間: 2025-06-12 10:49:20.062057-04:00

時間、分、秒などのフォーマットも指定できる。

from datetime import datetime
from zoneinfo import ZoneInfo

now_jst = datetime.now(ZoneInfo("Asia/Tokyo"))

print(f"標準形式: {now_jst}")
print(f"日付のみ: {now_jst.strftime('%Y-%m-%d')}")
print(f"時刻込み: {now_jst.strftime('%Y-%m-%d %H:%M:%S %Z')}")
print(f"日本語形式: {now_jst.strftime('%Y年%m月%d%H時%M分')}")
# 標準形式: 2025-06-12 23:51:28.282196+09:00
# 日付のみ: 2025-06-12
# 時刻込み: 2025-06-12 23:51:28 JST
# 日本語形式: 2025年06月12日 23時51分