Python làm toán ngày/giờ rất dễ nhờ đối tượng timedelta. Khi cần cộng/trừ ngày/giờ, dùng datetime.datetime() rồi cộng/trừ instance của datetime.timedelta(). timedelta đại diện cho khoảng thời gian, chênh lệch giữa hai thời điểm.
Chữ ký constructor:
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
Lưu ý: Tất cả tham số tùy chọn, mặc định 0. Có thể là int, long, float, dương hoặc âm.
Ví dụ dùng timedelta
import datetime old_time = datetime.datetime.now() print(old_time) new_time = old_time - datetime.timedelta(hours=2, minutes=10) print(new_time)
Kết quả
2018-01-04 11:09:00.694602 2018-01-04 08:59:00.694602
timedelta không hỗ trợ trực tiếp cho datetime.time(). Cần dùng datetime.datetime.combine() tạo instance datetime, tính toán, rồi lấy .time().
Trừ 2 đối tượng datetime cho ra timedelta, dùng để tìm chênh lệch chính xác.
Ví dụ
t1 = datetime.datetime.now() t2 = datetime.datetime.now() print(t1 - t2) print(type(t1 - t2))
Kết quả
-1 day, 23:59:56.653627 <class 'datetime.timedelta'>