2012-07-13 45 views
30
>>> import pytz 
>>> pytz.timezone('Asia/Hong_Kong') 
<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD> 

Bù đắp bảy giờ và 37 phút? Đây là một chút kỳ lạ, không ai có cùng một vấn đề?Vấn đề múi giờ lạ với pytz

Trong thực tế tôi nhận được hành vi khác nhau giữa

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?" 
+0

vấn đề chính xác là gì? ['Thời gian Hồng Kông lần đầu tiên được đặt thành Giờ địa phương (GMT + 7: 36: 41) vào ngày 1 tháng 1 năm 1885 lúc 13:00 bởi Đài quan sát Hoàng gia Hồng Kông'] (http://en.wikipedia.org/ wiki/Hong_Kong_Time # Time_standards) – KurzedMetal

+0

Xem http://stackoverflow.com/questions/11442183/pytz-timezone-shows-weird-results-for-asia-calcutta/11442571#11442571 –

Trả lời

43

khu Time và offsets thay đổi trong những năm qua. Tên vùng mặc định và offset được phân phối khi pytz tạo ra một đối tượng múi giờ là những cái sớm nhất có sẵn cho vùng đó, và đôi khi chúng có vẻ lạ. Khi bạn sử dụng localize để đính kèm múi giờ vào một ngày, tên vùng và bù thích hợp được thay thế. Chỉ cần sử dụng hàm tạo datetime để đính kèm vùng vào ngày không cho phép nó điều chỉnh chính xác.

Các vấn đề liên quan