Trừ một khoảng thời gian (timedelta) từ date hoặc datetime rất đơn giản: chỉ cần dùng toán tử -.
Ví dụ: Trừ 1 ngày
from datetime import datetime, timedelta
today = datetime.today()
yesterday = today - timedelta(days=1)
print("Hôm nay:", today)
print("Hôm qua:", yesterday)
Kết quả
Hôm nay: 2017-12-29 12:28:06.531791
Hôm qua: 2017-12-28 12:28:06.531791
Các đơn vị thời gian hỗ trợ
timedelta(days=1) # 1 ngày
timedelta(weeks=1) # 1 tuần (7 ngày)
timedelta(hours=2) # 2 giờ
timedelta(minutes=30) # 30 phút
timedelta(seconds=45) # 45 giây
timedelta(milliseconds=500) # 500 ms
timedelta(microseconds=100) # 100 µs
# Kết hợp
timedelta(days=1, hours=2, minutes=30)
Làm việc với date (không có time)
from datetime import date, timedelta
d = date(2024, 1, 15)
d_minus_10 = d - timedelta(days=10)
print(d_minus_10) # 2024-01-05
Lưu ý
datechỉ hỗ trợdays, weeks(các đơn vị nhỏ hơn bị bỏ qua).datetimehỗ trợ tất cả đơn vị.- Phép trừ
date - datecũng trả vềtimedelta(chỉ có days).