Hướng dẫn python datetime no timezone - python datetime không có múi giờ
Tổng quanGần đây mình có làm việc nhiều với kiểu dữ liệu Datetime trong Python. Vấn đề mình gặp phải là xử lý nhiều loại time format khác nhau, chuyển hóa thành dạng Datetime, chuẩn hóa thời gian lưu trữ và lưu vào database. Và sau đây, mình sẽ viết bài chia sẻ về cách mình xử lý kiểu dữ liệu Datetime trong Python. Trong bài mình sẽ sử dụng Python 3 để xử lý kiểu dữ liệu Datetime. Show
Tips 1: Chuẩn hóa múi giờ sử dụngĐầu tiên, cũng là quan trọng nhất, chuẩn hóa múi giờ sử dụng để convert các kiểu thời gian. Mình lựa chọn sử dụng chuẩn múi giờ UTC để chuẩn hóa thời gian cho cả hệ thống cũng như làm múi giờ chuẩn để xử lý các loại format thời gian khác nhau. Tham khảo thêm về thời gian UTC tại Tips 2: Convert String thành DatetimeXử lý bằng hàm
Xử lý bằng strptime
Lưu ý:
Tips 3: Chuyển hóa kiểu Datetime sang Timestamp PythonTimestamp là kiểu thời gian thông dụng của hệ thông Unix, tìm hiểu thêm tại
Tips 4: Chuyển hóa kiểu native date sang UTC timezoneKiểm tra kiểu timezone
Lưu ý: không sử dụng hàm replace, hàm replace sẽ chỉ thay đổi tzinfo không qui đổi thời gian từ múi giờ này sang múi giờ khác Tips 5: Convert UTC sang timezone khácNếu bạn ở múi giờ Việt Nam (GMT + 7), tức nếu hiện tại là 8 giờ sáng (giờ Việt Nam) thì quy ra giờ UTC tức 1 giờ sáng (giờ UTC). Vậy nếu Datetime đang ở múi giờ UTC, ta phải convert nó sáng giờ Việt Nam
Tips 6: Chuyên từ Timestamp sang Datetime Tips 7: Convert Datetime sang ISO 8601ISO 8601 là một tiêu chuẩn quốc tế, được đưa ra bởi Tổ chức tiêu chuẩn hóa quốc tế (ISO) lần đầu tiên năm 1988, mô tả quy cách viết ngày tháng và thời gian theo cách đơn giản nhất mà máy tính có thể hiểu được. Còn đối với Python ISO 8601 Datetime là string format time thông dụng.
Nguồnhttps://vi.wikipedia.org/wiki/Th%E1%BA%A3o_lu%E1%BA%ADn:M%C3%BAi_gi%E1%BB%9D https://vi.wikipedia.org/wiki/Th%E1%BA%A3o_lu%E1%BA%ADn:M%C3%BAi_gi%E1%BB%9D Thực hiện bởi cloud365.vn Tuy nhiên, đối tượng DateTime với dấu thời gian có thể được tạo bằng cách cung cấp tham số TZ.
Tuy nhiên, đối tượng DateTime với dấu thời gian có thể được tạo bằng cách cung cấp tham số TZ.
Cải thiện bài viết Lưu bài viết Đọc
Để loại bỏ dấu thời gian, tzinfo phải được đặt không khi gọi chức năng thay thế (). Đầu tiên, hãy tạo một đối tượng DateTime với thời gian hiện tại bằng DateTime.now (). Đối tượng DateTime sau đó đã được sửa đổi để chứa thông tin múi giờ cũng bằng cách sử dụng timezone.utc. Đối tượng DateTime với thông tin Timezone sau đó được thao tác bằng phương thức .Replace () để xóa thông tin múi giờ bằng tham số TZINFO.datetime.now(). The DateTime object was then modified to contain the timezone information as well using the timezone.utc. The DateTime object with timezone information is then manipulated using the .replace() method to remove the timezone information using the tzinfo parameter. Syntax:
Example: Python 3 4 5 6 7 8 9 0 1 7 8 4 8 6 0 1 9 8 4 8 3 4 0 6Output: 2021-08-10 12:51:42.093388 2021-08-10 12:51:42.093388+00:00 2021-08-10 12:51:42.09338 Tuy nhiên, đối tượng DateTime với dấu thời gian có thể được tạo bằng cách cung cấp tham số TZ.tz parameter. Example: Python 3 4 5 6 7 8 9 0 1 9 8 4 8 3 4 0 6Output: 2021-08-10 07:21:57.838856+00:00 2021-08-10 07:21:57.838856 |