【Python】datetimeモジュールについて【標準ライブラリ】
このページでは、Pythonの標準ライブラリ「datetimeモジュール」について、詳細に解説します。datetimeモジュールは、日付や時間の操作を行うための強力なツールを提供しており、さまざまな用途に利用できます。
- datetimeオブジェクト
- dateオブジェクト
- timeオブジェクト
- timedeltaオブジェクト
- datetimeの操作
- datetimeのフォーマット
- datetimeの比較
- datetimeのその他のメソッド
datetimeオブジェクト
datetimeオブジェクトは、日付と時間の両方を扱うためのクラスです。日付と時間を組み合わせた情報を保持します。
from datetime import datetime # 現在の日付と時刻を取得 now = datetime.now() print(now)
上記のコードは、現在の日時(年月日、時分秒)を取得して表示します。例えば、出力は「2025-01-31 14:30:45.123456」のようになります。
dateオブジェクト
dateオブジェクトは、日付のみを扱うためのクラスです。年月日を保持し、時間に関する情報は含みません。
from datetime import date # 現在の日付を取得 today = date.today() print(today)
出力例:「2025-01-31」
また、dateオブジェクトでは年、月、日を個別に取得することもできます。
year = today.year month = today.month day = today.day print(year, month, day)
出力例:「2025 1 31」
timeオブジェクト
timeオブジェクトは、時刻のみを扱うためのクラスです。時分秒を保持しますが、日付に関する情報は含みません。
from datetime import time # 時刻を設定 t = time(14, 30, 45) print(t)
出力例:「14:30:45」
timeオブジェクトでは、時、分、秒、マイクロ秒を個別に取得することも可能です。
hour = t.hour minute = t.minute second = t.second microsecond = t.microsecond print(hour, minute, second, microsecond)
出力例:「14 30 45 0」
timedeltaオブジェクト
timedeltaオブジェクトは、日付や時間の差を表現するために使用します。例えば、2つの日付の差や、時間の加算・減算に利用されます。
from datetime import timedelta # 5日間のtimedeltaを作成 delta = timedelta(days=5) print(delta)
出力例:「5 days, 0:00:00」
timedeltaオブジェクトを使って日付の加算や減算を行うこともできます。
from datetime import datetime # 現在の日付を取得 now = datetime.now() # 3日後の日付を計算 new_date = now + timedelta(days=3) print(new_date)
出力例:「2025-02-03 14:30:45.123456」
datetimeの操作
datetimeオブジェクトには、さまざまな操作を行うメソッドが用意されています。主に日付や時間の演算や変換が可能です。
from datetime import datetime # 現在の日付を取得 now = datetime.now() # 年、月、日、時、分、秒を個別に取得 year = now.year month = now.month day = now.day hour = now.hour minute = now.minute second = now.second print(year, month, day, hour, minute, second)
出力例:「2025 1 31 14 30 45」
datetimeのフォーマット
datetimeオブジェクトは、strftime()メソッドを使用して、さまざまなフォーマットで表示できます。フォーマット指定子を使うことで、任意の形式で日付や時刻を表示することができます。
from datetime import datetime # 現在の日付を取得 now = datetime.now() # フォーマットを指定して表示 formatted_date = now.strftime("%Y-%m-%d %H:%M:%S") print(formatted_date)
出力例:「2025-01-31 14:30:45」
使用できるフォーマット指定子には以下のようなものがあります。
- %Y: 4桁の年
- %m: 2桁の月(01〜12)
- %d: 2桁の日(01〜31)
- %H: 2桁の時(00〜23)
- %M: 2桁の分(00〜59)
- %S: 2桁の秒(00〜59)
datetimeの比較
datetimeオブジェクト同士は比較演算子(<, <=, >, >=, ==, !=)を使用して比較できます。
from datetime import datetime # 2つのdatetimeオブジェクトを作成 now = datetime.now() later = now + timedelta(days=1) # 比較 print(now < later) # True print(now == later) # False
出力例:
- True
- False
datetimeのその他のメソッド
datetimeオブジェクトには、他にも便利なメソッドがいくつかあります。例えば、now()メソッドやtoday()メソッドを使って現在の日付や時刻を取得したり、fromtimestamp()メソッドを使ってUnixタイムスタンプから日付を取得したりできます。
from datetime import datetime # Unixタイムスタンプをdatetimeに変換 timestamp = 1622520000 # 2021-06-01 00:00:00 UTC dt = datetime.fromtimestamp(timestamp) print(dt)
出力例:「2021-06-01 09:00:00」