Ngày giờ trong Python: Làm việc với ngày và giờ
Tìm hiểu cách xử lý ngày, giờ, múi giờ và phép tính trong Python. Nắm vững định dạng, phân tích cú pháp và số học bằng cách sử dụng datetime và timedelta.
Tổng quan
Xử lý ngày và giờ là một thách thức lớn trong phát triển phần mềm, do năm nhuận, điều chỉnh tiết kiệm ánh sáng ban ngày và các định dạng múi giờ khác nhau. Python giải quyết những thách thức này bằng mô-đun `datetime` tích hợp sẵn. Mô-đun này cung cấp một tập hợp mạnh mẽ các lớp đối tượng—chẳng hạn như `date`, `time`, `datetime` và `timezone`—thể hiện và thao tác dữ liệu thời gian một cách rõ ràng, giúp việc tính toán ngày trở nên đơn giản.
Một trong những tác vụ phổ biến nhất là chuyển đổi ngày thành chuỗi (định dạng) và chuỗi thành ngày (phân tích cú pháp). Python sử dụng hai phương thức chính cho việc này: `.strftime()` (thời gian định dạng chuỗi) chuyển đổi một đối tượng datetime thành một chuỗi có thể đọc được bằng cách sử dụng mã định dạng (như `%Y` cho năm, `%m` cho tháng và `%d` cho ngày). Ngược lại, `datetime.strptime()` (thời gian phân tích chuỗi) phân tích đầu vào chuỗi thô thành đối tượng datetime dựa trên mẫu định dạng phù hợp, điều này rất quan trọng khi đọc nhật ký hoặc đầu vào API.
Việc thực hiện phép toán ngày cũng được hỗ trợ đầy đủ bằng cách sử dụng đối tượng `timedelta`. `timedelta` biểu thị một khoảng thời gian (ví dụ: 7 ngày, 4 giờ). Bạn có thể cộng hoặc trừ `timedelta` khỏi `datetime` để tính ngày trong quá khứ hoặc tương lai (chẳng hạn như xác định ngày hết hạn). Khi làm việc với nhiều múi giờ, việc sử dụng các đối tượng nhận biết múi giờ (chẳng hạn như `zoneinfo` hoặc `timezone.utc`) là rất quan trọng để đảm bảo việc so sánh ngày vẫn chính xác trên các vị trí máy chủ khác nhau.
Đầu ra mã & thực thi
Phân tích chuỗi thành các đối tượng datetime và tính toán thời hạn trong tương lai bằng timedelta.
from datetime import datetime, timedelta
# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")
# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")
# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")
# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04Triển khai từng bước
- Tính ngày hết hạn dùng thử và ngày thanh toán
- Phân tích chuỗi dấu thời gian bên trong nhật ký truy cập máy chủ
- Lập kế hoạch công việc định kỳ tự động hoặc báo cáo định kỳ
Câu hỏi thường gặp
Đối tượng datetime ngây thơ và nhận thức là gì?
Một đối tượng datetime ngây thơ không chứa thông tin múi giờ, trong khi một đối tượng datetime nhận biết bao gồm các chênh lệch múi giờ, giúp an toàn cho việc tính toán thời gian quốc tế.
Làm cách nào để tính chênh lệch giữa hai ngày?
Việc trừ một đối tượng datetime khỏi một đối tượng khác sẽ trả về một đối tượng timedelta biểu thị khoảng thời gian chính xác giữa chúng.
Chủ đề liên quan
Khám phá sức mạnh của mô-đun toán học tích hợp của Python. Tìm hiểu về các hàm lượng giác, logarit, phương pháp làm tròn và hằng số.
Phân tích cú pháp JSON của PythonTìm hiểu cách đọc, viết và phân tích dữ liệu JSON trong Python. Nắm vững json.loads, json.dumps và tùy chỉnh bộ mã hóa/giải mã JSON.
Tài nguyên Python được đề xuất
Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.
Cách phân tích chuỗi thành ngày giờ trong Python
Tìm hiểu cách chuyển đổi chuỗi thành đối tượng datetime trong Python. Nắm vững phương thức strptime, phân tích chuỗi ngày, xử lý múi giờ và ngăn ngừa lỗi định dạng.
Bảng cheat định dạng ngày giờ của Python
Tìm hiểu cách phân tích cú pháp và định dạng ngày và giờ trong Python bằng cách sử dụng datetime, strftime và strptime.
Python vs JavaScript: Ngôn ngữ lập trình nào tốt nhất?
So sánh toàn diện giữa Python và JavaScript. Khám phá sự khác biệt về cú pháp, hiệu suất, trường hợp sử dụng (phụ trợ so với giao diện người dùng) và các ví dụ về mã hóa.