Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah pytz Menunjukkan Offset Zon Waktu Tidak Lazim untuk '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!