Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách làm toán ngày giờ (date/time math) trong Python

Python hỗ trợ toán học ngày giờ rất tốt thông qua class timedelta trong module datetime. Mỗi khi cần cộng/trừ một khoảng thời gian, hãy tạo đối tượng datetime và cộng/trừ với 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. Chấp nhận int, float, dương/âm.

Ví dụ cơ bản

import datetime

now = datetime.datetime.now()
print("Hiện tại:", now)

# Trừ 2 giờ 10 phút
earlier = now - datetime.timedelta(hours=2, minutes=10)
print("Trước đó:", earlier)

Kết quả

Hiện tại: 2018-01-04 11:09:00.694602
Trước đó: 2018-01-04 08:59:00.694602

Lưu ý về datetime.time

timedelta không làm việc trực tiếp với datetime.time(). Giải pháp: dùng datetime.combine(date, time) tạo datetime, tính toán, rồi lấy .time().

Tính chênh lệch giữa hai datetime

Phép trừ hai datetime trả về timedelta - rất hữu ích để biết khoảng thời gian chính xác.

Ví dụ

t1 = datetime.datetime.now()
t2 = datetime.datetime.now()
delta = t1 - t2
print(delta)
print(type(delta))

Kết quả

-1 day, 23:59:56.653627
<class 'datetime.timedelta'>