Python xử lý các múi giờ như thế nào?
Xử lý các múi giờ nói chung là một vấn đề hỗn loạn hấp dẫn, sau đó một lần nữa thời gian chạy ngôn ngữ có thể có vấn đề lớn hơn. Có những suy nghĩ vượt ra ngoài những suy nghĩ mà một hệ điều hành hoặc bản phân phối cần xử lý. Có một số dòng để xử lý các múi giờ, bắt đầu với thực tế là chúng thay đổi Show Sự miêu tảKhi làm việc với các múi giờ thường được cân nhắc kỹ lưỡng, một trong những phần không thân thiện nhất của thao tác chuỗi thời gian. Đặc biệt, chuyển đổi thời gian tiết kiệm ánh sáng ban ngày (DST) là một nguồn công khai của vấn đề. Đối với chính nó, một số người dùng chuỗi thời gian chọn làm việc với chuỗi thời gian theo thời gian quốc tế có tổ chức hoặc UTC là người thừa kế của Giờ trung bình Greenwich. Đây là tiêu chuẩn quốc tế hiện có. Các múi giờ được biểu thị bằng cách bù đắp từ UTC; . g. , New York trễ bốn giờ theo giờ UTC theo giờ mùa hè và 5 giờ vào thời gian còn lại trong năm Thông tin múi giờ có trong Python từ thư viện pytz của bên thứ 3. Những tiết lộ cơ sở dữ liệu Olson, một tập hợp thông tin múi giờ thế giới. Điều này đặc biệt quan trọng đối với dữ liệu lịch sử vì ngày chuyển đổi DST đã được thay đổi nhiều lần tùy thuộc vào sự thúc đẩy của chính quyền địa phương. Thời gian chuyển đổi DST đã được thay đổi nhiều lần kể từ năm 1900 tại Hoa Kỳ thư viện pytzpytz đưa cơ sở dữ liệu Olson tz vào Python. Thư viện này cho phép tính toán múi giờ chính xác và đa nền tảng bằng Python 2. 4 hoặc cao hơn. Nó giải quyết tương tự vấn đề về thời gian không chắc chắn vào cuối giờ tiết kiệm ánh sáng ban ngày mà chúng ta có thể đọc thêm trong Tham khảo thư viện Python, datetime. thông tin Quan trọng cần lưu ý. Thư viện này khác với API Python được ghi lại cho các ứng dụng tzinfo. Chúng ta cần sử dụng phương thức bản địa hóa ( ) được ghi lại trong tài liệu này nếu chúng ta muốn tạo thời gian đồng hồ treo tường cục bộ. Hơn nữa, nếu chúng tôi triển khai số học ngày vào giờ địa phương vượt qua ranh giới DST, thì kết quả có thể ở múi giờ không chính xác. Phương thức chuẩn hóa ( ) được đưa ra để sửa lỗi này Làm cách nào để cài đặt thư viện pytz? Gói này có thể được cài đặt bằng cách sử dụng pip hoặc từ một tarball bằng cách sử dụng các distutils Python tiêu chuẩn. Chúng tôi không cần tải xuống bất cứ thứ gì vì phiên bản mới nhất sẽ được tải xuống cho chúng tôi từ PyPI nếu chúng tôi đang cài đặt bằng pip pip cài đặt pytz Chạy lệnh dưới đây với tư cách là người dùng quản trị nếu chúng tôi đang cài đặt từ tarball thiết lập trăn. cài đặt py pytz cho doanh nghiệpĐiều này có thể truy cập như một phần của Đăng ký Tidelift. Những người bảo trì pytz và nhiều gói mới đang làm việc với Tidelift để mang lại sự hỗ trợ và bảo trì có lợi cho các phần phụ thuộc nguồn mở mà chúng tôi sử dụng để xây dựng các ứng dụng của mình. Mặc dù trả tiền cho những người duy trì các nhu cầu kỹ lưỡng, chúng tôi tiết kiệm thời gian, giảm rủi ro và cải thiện tình trạng mã Chúng tôi sẽ cần xem tài liệu của thư viện đó để biết thông tin chi tiết về thư viện pytz. Chúng ta có thể bỏ qua API của nó bên ngoài tên múi giờ vì gấu trúc bao hàm chức năng của pytz Tên múi giờ có thể được thiết lập tương tác và trong tài liệu Trong [418]. nhập pytz Trong [419]. pytz. common_timezones[-5. ] Hết[419]. [‘Hoa Kỳ/Miền Đông’, ‘Hoa Kỳ/Hawaii’, ‘Hoa Kỳ/Núi’, ‘Hoa Kỳ/Thái Bình Dương’, ‘UTC’] sử dụng pytz. múi giờ để bắt một đối tượng múi giờ từ pytz Trong [420]. tz = pytz. múi giờ ('US/Eastern') Trong [421]. tz Ra [421] Nội địa hóa và chuyển đổiTheo mặc định, chuỗi thời gian trong gấu trúc là múi giờ ngây thơ. Nghiên cứu chuỗi thời gian dưới đây rng = pd. date_range(‘3/9/2012 9. 30′, chu kỳ=6, tần số=’D’) ts = Sê-ri (np. ngẫu nhiên. randn(len(rng)), index=rng) Trường tz của chỉ mục là Không có Trong [423]. in (ts. mục lục. tz) Không có Phạm vi ngày có thể được tạo với múi giờ được đặt Trong [424]. pd. date_range (‘3/9/2012 9. 30′, chu kỳ=10, freq=’D’, tz=’UTC’) Ra [424] [2012-03-09 09. 30. 00,…, 2012-03-18 09. 30. 00] Chiều dài. 10, thường xuyên. D, Múi giờ. UTC Thay đổi từ ngây thơ sang bản địa hóa được xử lý bằng phương thức tz_localize Trong [425]. ts_utc = ts. tz_localize ('UTC') Trong [426]. ts_utc Ra [426] 2012-03-09 09. 30. 00+00. 00 0. 414615 2012-03-10 09. 30. 00+00. 00 0. 427185 2012-03-11 09. 30. 00+00. 00 1. 172557 2012-03-12 09. 30. 00+00. 00 -0. 351572 2012-03-13 09. 30. 00+00. 00 1. 454593 2012-03-14 09. 30. 00+00. 00 2. 043319 tần số. Đ. Trong [427]. ts_utc. mục lục Ra [427] [2012-03-09 09. 30. 00,…, 2012-03-14 09. 30. 00] Chiều dài. 6, tần số. D, Múi giờ. UTC Khi một chuỗi thời gian đã được bản địa hóa thành một múi giờ cụ thể, nó có thể được chuyển đổi thành một múi giờ khác bằng cách sử dụng tz_convert Trong [428]. ts_utc. tz_convert ('Mỹ/Đông') Ra [428] 2012-03-09 04. 30. 00-05. 00 0. 414615 2012-03-10 04. 30. 00-05. 00 0. 427185 2012-03-11 05. 30. 00-04. 00 1. 172557 2012-03-12 05. 30. 00-04. 00 -0. 351572 2012-03-13 05. 30. 00-04. 00 1. 454593 2012-03-14 05. 30. 00-04. 00 2. 043319 tần số. Đ. Chúng tôi có thể bản địa hóa thành EST và chuyển đổi sang, chẳng hạn như giờ UTC hoặc giờ Berlin trong trường hợp chuỗi thời gian trên nằm giữa quá trình chuyển đổi DST trong múi giờ Hoa Kỳ/Miền Đông Trong [429]. ts_đông = ts. tz_localize ('Mỹ/Đông') Trong [430]. ts_đông. tz_convert('UTC') Ra [430] 2012-03-09 14. 30. 00+00. 00 0. 414615 2012-03-10 14. 30. 00+00. 00 0. 427185 2012-03-11 13. 30. 00+00. 00 1. 172557 2012-03-12 13. 30. 00+00. 00 -0. 351572 2012-03-13 13. 30. 00+00. 00 1. 454593 2012-03-14 13. 30. 00+00. 00 2. 043319 tần số. Đ. Trong [431]. ts_đông. tz_convert ('Châu Âu/Berlin') Ra [431] 2012-03-09 15. 30. 00+01. 00 0. 414615 2012-03-10 15. 30. 00+01. 00 0. 427185 2012-03-11 14. 30. 00+01. 00 1. 172557 2012-03-12 14. 30. 00+01. 00 -0. 351572 2012-03-13 14. 30. 00+01. 00 1. 454593 2012-03-14 14. 30. 00+01. 00 2. 043319 tần số. Đ. tz_localize và tz_convert cũng là các phương thức mẫu trên Datetime Index Trong [432]. ts. mục lục. tz_localize('Châu Á/Thượng Hải') Ra [432] [2012-03-09 09. 30. 00… 2012-03-14 09. 30. 00] Chiều dài. 6, tần số. D, Múi giờ. Châu Á/Thượng Hải Để biết thêm chi tiết, hãy truy cập. https. //www. công nghệ công nghiệp4. com/2021/06/how-to-handle-time-zone-in-python. html Dữ liệu múi giờ nên được xử lý như thế nào trong Python?Vì vậy, để làm việc suôn sẻ với múi giờ, bạn nên sử dụng UTC làm múi giờ cơ sở . Để có được Giờ Phối hợp Quốc tế, tôi. e. Giờ UTC chúng ta chỉ cần truyền tham số vào hàm now(). Để có được thời gian UTC, chúng ta có thể trực tiếp sử dụng 'pytz. utc' làm tham số cho hàm now() dưới dạng 'now(pytz.
Múi giờ datetime của Python có nhận biết không?Python có thư viện tích hợp sẵn, datetime, được sử dụng rộng rãi để xử lý dấu thời gian, nhưng nó không thực thi nhận thức múi giờ .
Thư viện Python nào được sử dụng cho múi giờ?pytz đưa cơ sở dữ liệu Olson tz vào Python. Thư viện này cho phép tính toán múi giờ chính xác và đa nền tảng bằng Python 2. 4 hoặc cao hơn. Nó cũng giải quyết vấn đề về thời gian không rõ ràng vào cuối giờ tiết kiệm ánh sáng ban ngày, bạn có thể đọc thêm về vấn đề này trong Tham khảo thư viện Python ( datetime. tzinfo ). |