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

Cách chuyển date sang datetime trong Python

Chuyển date (chỉ năm/tháng/ngày) sang datetime (có thêm giờ/phút/giây) bằng cách gán thời gian mặc định (thường là 00:00:00 - midnight).

Cách 1: datetime.combine() - Khuyến nghị

from datetime import date, datetime, time

d = date.today()
# time.min = 00:00:00
dt = datetime.combine(d, time.min)
print(dt)  # 2024-01-15 00:00:00

Cách 2: Khởi tạo datetime trực tiếp từ date components

from datetime import date, datetime

d = date.today()
dt = datetime(d.year, d.month, d.day)
print(dt)  # 2024-01-15 00:00:00

Cách 3: Gán thời gian tùy chỉnh

from datetime import date, datetime, time

d = date(2024, 1, 15)
t = time(9, 30, 0)  # 09:30:00
dt = datetime.combine(d, t)
print(dt)  # 2024-01-15 09:30:00

Cách 4: Dùng replace() trên datetime (nếu đã có datetime)

dt = datetime(2024, 1, 15, 14, 30)
dt_date_only = dt.replace(hour=0, minute=0, second=0, microsecond=0)
print(dt_date_only)  # 2024-01-15 00:00:00

Tóm tắt

CáchƯu điểmNhược điểm
datetime.combine(date, time.min)Rõ ràng, pythonic, dùng time objectCần import time
datetime(d.year, d.month, d.day)Không cần import thêmVerbose, dễ typo
dt.replace(hour=0...)Nếu đã có datetimeChỉ dùng khi đã có dt

Khuyến nghị: datetime.combine(d, time.min) cho code rõ ràng, dễ bảo trì.