今回はdatetimeオブジェクトに時間を足す方法を解説します。
datetimeモジュールについては以下参照。
https://docs.python.org/ja/3/library/datetime.html
datetimeオブジェクトに対して時刻を足す・引く方法
datetimeオブジェクトに対して時刻を足したり引いたりするにはtimedelta
を使用して経過時間を生成します。
サンプルコードはこちら
from datetime import datetime, timedelta
# 任意の時間(datetime型)
target_time = datetime.fromisoformat("2022-11-11T12:00:00+09:00")
# 30分の経過時間
calc_min = timedelta(minutes=30)
# 足し算
add_time = target_time + calc_min
print(add_time)
# 結果
# 2022-11-11 12:30:00+09:00
timedelta型に任意の経過時間を指定するのがポイントです。
timedelta型については以下を参照
https://docs.python.org/ja/3/library/datetime.html#timedelta-objects
任意のdatetime型を生成した後、datetime.timedeltaを使用して経過時間を生成します。
timedeltaの引数に指定したい時間を記載します。
指定できる引数は以下の通り
- weeks
- days
- hours
- minutes
- seconds
- milliseconds
- microseconds
生成したtimedeltaとdatetime型は数値のように計算することで時刻を足すことができます。
もちろん、引き算も可能です。
from datetime import datetime, timedelta
# 任意の時間(datetime型)
target_time = datetime.fromisoformat("2022-11-11T12:00:00+09:00")
# 30分の経過時間
calc_min = timedelta(minutes=30)
# 引き算もできる
subtraction_time = target_time - calc_min
print(subtraction_time)
# 結果
# 2022-11-11 11:30:00+09:00
また、timedeltaには複数の引数をつけることもできます。
from datetime import datetime, timedelta
# 任意の時間(datetime型)
target_time = datetime.fromisoformat("2022-11-11T12:00:00+09:00")
# 引数に任意の時刻を複数指定できる
add_timedelta = timedelta(days=1, hours=3, minutes=30, seconds=20)
result_time = target_time + add_timedelta
print(result_time)
# 2022-11-12 15:30:20+09:00
まとめ
今回はdatetimeオブジェクトに時間を足す方法を解説しました。
まとめです。
- 時刻を足すにはdatetime.timedelta()を使用して経過時間を生成する。
- 経過時間とdatetime型のオブジェクトを足す・引くことで時間の操作を行う。
以上になります。