【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」