Việc tính toán ngày giờ trong Python rất dễ dàng nhờ đối tượng timedelta. Khi muốn cộng hoặc trừ một khoảng thời gian vào ngày/giờ, hãy dùng datetime.datetime cộng/trừ với datetime.timedelta.
Cú pháp timedelta
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
Tất cả tham số tùy chọn, mặc định 0. Có thể là int, float, dương hoặc âm.
Ví dụ: Trừ 2 giờ 10 phút
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ưu ý: timedelta không hỗ trợ trực tiếp cho datetime.time(). Cần dùng datetime.combine() để chuyển thành datetime, tính toán, rồi lấy .time().
Trừ hai đối tượng datetime
Trừ hai đối tượng datetime cho kết quả là một đối tượng timedelta, cho phép biết chính xác khoảng cách giữa hai thời điểm.
Ví dụ
t1 = datetime.datetime.now()
t2 = datetime.datetime.now()
diff = t1 - t2
print("Chênh lệch:", diff)
print("Kiểu dữ liệu:", type(diff))
Kết quả
Chênh lệch: -1 day, 23:59:56.653627
Kiểu dữ liệu: <class 'datetime.timedelta'>