2012-08-16 37 views
7

Đối time.timezone, tài liệu Python nói:Tại sao Python trả lại giá trị múi giờ âm?

Các offset của địa phương (-DST phi) múi giờ, chỉ trong vài giây về phía tây UTC (tiêu cực ở hầu hết các nước Tây Âu, tích cực ở Mỹ, không ở Anh).

Có ai biết tại sao nó trả về giá trị âm cho hầu hết Tây Âu? Các quốc gia này có mức chênh lệch dương và không ở mức âm.

Ví dụ: Brussels nằm trong múi giờ UTC + 1 ...

+0

Tôi nghi ngờ lỗi đánh máy. Bạn đã thử những gì nó thực sự trở lại? –

+0

'UTC_Time - Brussels_Time = -1' giờ. Vì vậy, bạn có thể nhận được con số này và tổng cộng với thời gian UTC và nhận được Brussels lần. Họ có thể làm theo cách khác và bạn chỉ cần trừ đi. – JBernardo

+0

Nếu được xác định bằng giây _west của UTC_, giá trị âm sẽ có ý nghĩa đối với các múi giờ _east_ của UTC. Điều đó đánh tôi là không phổ biến, nhưng mô tả là nhất quán. – omz

Trả lời

7

Đây là đồ tạo tác Unix. Mặc dù mô tả số chuẩn cho múi giờ là theo giờ và phút về phía đông từ UTC (UTC + 1 cho Brussels, UTC-5 cho New York, v.v.) Unix timezone được đo bằng giây phía tây từ UTC.

Từ http://pubs.opengroup.org/onlinepubs/7908799/xsh/tzset.html:

Biến bên ngoài timezone được thiết lập để sự khác biệt, chỉ trong vài giây, giữa Coordinated Time Universal (UTC) và thời gian tiêu chuẩn địa phương, ví dụ:

TZ timezone 
EST 5*60*60 
GMT 0*60*60 
JST -9*60*60 
MET -1*60*60 
MST 7*60*60 
PST 8*60*60 

Về lý do tại sao Unix có nó ngược lại, tôi đoán đó là một tai nạn lịch sử, có lẽ vì Unix ban đầu được phát triển ở Mỹ.

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