KAMEYA_WORKS
Pythonのdatetimeモジュールを使うと、日付や時間を扱うことができます。本章では、datetimeモジュールの基本的な使い方を解説します。
datetimeオブジェクトの作成Pythonで日付と時間を扱うには、datetimeモジュールのdatetimeクラスを使用します。
from datetime import datetime
# 現在の日時を取得
now = datetime.now()
print(now) # 例: 2025-03-03 12:34:56.789012
# 指定した日時のオブジェクトを作成
dt = datetime(2025, 3, 3, 12, 0, 0)
print(dt) # 2025-03-03 12:00:00
timedeltaクラスを使うと、日時の加算や減算ができます。
from datetime import timedelta
# 1日加算
tomorrow = now + timedelta(days=1)
print(tomorrow) # 翌日の日付
# 1時間減算
one_hour_ago = now - timedelta(hours=1)
print(one_hour_ago) # 1時間前の時刻
Pythonのdatetimeオブジェクトはデフォルトでは「タイムゾーンなし(naive)」です。pytzモジュールを使うと、タイムゾーンを扱うことができます。
import pytz
# UTCの現在時刻を取得
utc_now = datetime.now(pytz.utc)
print(utc_now)
# 日本時間(JST)に変換
jst = pytz.timezone('Asia/Tokyo')
jst_now = utc_now.astimezone(jst)
print(jst_now) # UTC+9時間
datetimeオブジェクトと文字列の相互変換datetimeから文字列へ変換strftimeメソッドを使うと、datetimeオブジェクトを文字列に変換できます。
# 指定フォーマットの文字列に変換
date_str = now.strftime('%Y-%m-%d %H:%M:%S')
print(date_str) # 例: 2025-03-03 12:34:56
datetimeオブジェクトへ変換strptimeメソッドを使うと、文字列をdatetimeオブジェクトに変換できます。
# 文字列をdatetimeオブジェクトに変換
dt_from_str = datetime.strptime('2025-03-03 12:00:00', '%Y-%m-%d %H:%M:%S')
print(dt_from_str) # 2025-03-03 12:00:00
datetime.now() で現在の日時を取得できるtimedelta を使って日付や時間の加算・減算ができるpytz を使うとタイムゾーンを扱えるstrftime で datetime を文字列に変換できるstrptime で文字列を datetime に変換できるこのように、datetimeモジュールを使えば、Pythonで簡単に日付や時間を操作できます。