Khi cần cộng hoặc trừ một khoảng thời gian (offset) vào một đối tượng ngày/giờ, hãy sử dụng datetime.datetime kết hợp với datetime.timedelta. Đối tượng timedelta biểu diễn một khoảng thời gian, tức là sự chênh lệch giữa hai ngày hoặc hai thời điểm.
Cú pháp timedelta
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
Lưu ý: Tất cả các tham số đều tùy chọn và mặc định bằng 0. Các tham số có thể là số nguyên, số thực, dương hoặc âm.
Ví dụ: Trừ 2 giờ 10 phút từ thời gian hiện tại
import datetime
old_time = datetime.datetime.now()
print("Thời gian cũ:", old_time)
new_time = old_time - datetime.timedelta(hours=2, minutes=10)
print("Thời gian mới:", new_time)
Kết quả
Thời gian cũ: 2018-01-04 11:09:00.694602
Thời gian mới: 2018-01-04 08:59:00.694602
Làm việc với datetime.time
Phép toán timedelta không hỗ trợ trực tiếp cho đối tượng datetime.time(). Nếu cần áp dụng offset cho một đối tượng time, hãy dùng datetime.datetime.combine() để tạo thành datetime, thực hiện phép tính, sau đó trích xuất lại time bằng phương thức .time().