時差(タイムゾーン)こみで時刻を取得するときは 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分