Pertanyaan Masalah zona waktu aneh dengan pytz


>>> import pytz
>>> pytz.timezone('Asia/Hong_Kong')
<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD>

Offset tujuh jam dan 37 menit? Ini sedikit aneh, apakah ada yang mengalami masalah yang sama?

Bahkan saya mendapatkan perilaku yang berbeda antara

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))
if dt1 > dt2:
   print "Why?"

32
2017-07-13 15:37


asal


Jawaban:


Zona waktu dan offset berubah selama bertahun-tahun. Nama zona default dan offset dikirimkan ketika pytz membuat objek zona waktu adalah yang paling awal yang tersedia untuk zona itu, dan kadang-kadang mereka dapat terlihat agak aneh. Ketika Anda menggunakan localize untuk melampirkan zona ke tanggal, nama zona yang tepat dan offset diganti. Cukup menggunakan datetime konstruktor untuk memasang zona ke tanggal tidak memungkinkan untuk menyesuaikan dengan benar.


46
2017-07-13 16:15