Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah pytz Menunjukkan Offset Zon Waktu Tidak Lazim untuk 'Asia/Hong_Kong'?

Mengapakah pytz Menunjukkan Offset Zon Waktu Tidak Lazim untuk 'Asia/Hong_Kong'?

Barbara Streisand
Barbara Streisandasal
2024-12-14 12:17:12715semak imbas

Why Does pytz Show an Unconventional Time Zone Offset for 'Asia/Hong_Kong'?

Offset Zon Waktu Tidak Lazim dalam pytz

Dalam pytz, mencipta objek zon waktu menggunakan nama zon waktu 'Asia/Hong_Kong' nampaknya luar biasa , kerana ia mengembalikan offset tujuh jam 37 minit. Tingkah laku ini tidak unik.

Puncanya terletak pada hakikat bahawa zon waktu dan offset mengalami perubahan sejarah. Pytz memulakan objek zon waktu dengan nama terawal yang tersedia dan mengimbangi untuk zon tertentu. Oleh itu, ofset lalai mungkin kelihatan ganjil pada masa-masa tertentu.

Untuk menyelesaikan isu ini, gunakan kaedah localize() dan bukannya pembina datetime apabila melampirkan zon waktu pada tarikh. Kaedah ini menggabungkan nama zon yang betul dan mengimbangi pada masa tertentu itu.

Contohnya:

>>> import pytz
>>> from datetime import datetime
>>> hk = pytz.timezone('Asia/Hong_Kong')

>>> dt1 = datetime(2012,1,1,tzinfo=hk)
>>> dt2 = hk.localize(datetime(2012,1,1))

>>> dt1 > dt2
False

Menggunakan localize() memastikan pelarasan yang betul bagi nama zon waktu dan mengimbangi.

Atas ialah kandungan terperinci Mengapakah pytz Menunjukkan Offset Zon Waktu Tidak Lazim untuk 'Asia/Hong_Kong'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn