Python - 日時の計算: timedelta

日時の計算: timedelta

Python では、datetime モジュールの timedelta オブジェクトは、2 つの日時の時刻間の差を表します。つまり、datetime オブジェクトで日時計算を行うと、timedelta オブジェクトが返されます。

import datetime

d1 = datetime.datetime(2020, 1, 1)
print(d1) # 2020-01-01 00:00:00

d2 = datetime.datetime(2010, 1, 1)
print(d2) # 2010-01-01 00:00:00

d = d1 - d2
print(d)  # 3652 days, 0:00:00

print(type(d)) # <class 'datetime.timedelta'>
timedelta オブジェクトの取得

Python における日時の足し算や引き算は以下のように行います。

import datetime

d = datetime.datetime.now()
print(d) # 2021-01-04 19:57:26.718246

# 1 秒前
print(d - datetime.timedelta(seconds=1)) # 2021-01-04 19:57:25.718246
# 1 分前
print(d - datetime.timedelta(minutes=1)) # 2021-01-04 19:56:26.718246
# 1 時間前
print(d - datetime.timedelta(hours=1))   # 2021-01-04 18:57:26.718246
# 1 日前
print(d - datetime.timedelta(days=1))    # 2021-01-03 19:57:26.718246
# 1 週間前 (days=7 と同じ)
print(d - datetime.timedelta(weeks=1))   # 2020-12-28 19:57:26.718246
日時の計算