Xử lý múi giờ với datetime.now() trong Python: Hướng dẫn cập nhật 2026
Xử lý múi giờ với datetime.now() trong Python: Hướng dẫn cập nhật 2026
Trong thế lập trình hiện đại, việc xử lý ngày giờ với chính xác múi giờ trở nên quan trọng hơn bao giờ hết. Module datetime của Python cung cấp nhiều công cụ mạnh mẽ, và trong bài viết này, chúng ta sẽ tập trung vào cách làm việc với datetime.now() và xử lý múi giờ một cách hiệu quả.
Sự thay đổi quan trọng trong Python 3.12+Một thay đổi đáng chú ý đã được giới thiệu trong Python 3.12: phương thức datetime.now(timezone.utc) đã thay thế datetime.utcnow(). Theo tài liệu Python 3.14.4, việc sử dụng datetime.now(timezone.utc) được khuyến nghị hơn vì nó tạo ra đối tượng datetime nhận thức về múi giờ (timezone-aware).
from datetime import datetime, timezone # Cách mới được khuyến nghị current_time_utc = datetime.now(timezone.utc) Tạo đối tượng datetime nhận thức về múi giờĐể tạo một đối tượng datetime nhận thức về múi giờ, chúng ta cần chỉ định rõ múi giờ:
from datetime import datetime, timezone, timedelta # Tạo múi giờ UTC+4 tz = timezone(timedelta(hours=4)) current_time = datetime.now(tz) Lấy múi giờ hệ thống hiện tạiPython hiện chưa có cách chuẩn đa nền tảng để lấy múi giờ hệ thống mà không cần tạo lớp riêng. Một đề xuất được đưa ra là thêm hàm riêng để trả về múi giờ hệ thống hiện tại:
def get_local_timezone(): # Triển khai để lấy múi giờ hệ thống pass # Sử dụng local_time = datetime.now(get_local_timezone()) Lấy thời gian hiện tại trong múi giờ cụ thểĐể lấy thời gian hiện tại trong một múi giờ cụ thể, chúng ta có thể sử dụng:
from datetime import datetime import pytz # Lấy thời gian hiện tại tại New York ny_tz = pytz.timezone('America/New_York') ny_time = datetime.now(ny_tz) Sự khác biệt giữa datetime nhận thức và không nhận thức Naive datetime: Chỉ chứa ngày và giờ, không có thông tin múi giờ Aware datetime: Bao gồm cả thông tin múi giờ, cho phép tính toán chính xác hơn # Naive datetime (không nhận thức) naive_dt = datetime.now() # Aware datetime (nhận thức) aware_dt = datetime.now(timezone.utc) Kết luậnViệc làm việc với datetime và múi giờ trong Python đòi hỏi sự chú ý đến chi tiết. Với các thay đổi trong Python 3.12+, việc sử dụng datetime.now(timezone.utc) thay vì datetime.utcnow() là bước đi đúng đắn để đảm bảo mã nguồn tương lai và chính xác hơn.
Python #Datetime #Timezone #Programming #Python2026 #UTC #DateTimeNowTất cả đánh giá
Đang tải...
🎬 Video Nổi Bật
Kết quả tìm kiếm trên Internet: (0.28 giây)