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で簡単に日付や時間を操作できます。