2012-08-16 10 views
7

, Python belgelerine diyor: İngiltere'dePython neden negatif bir saat dilimi değeri döndürüyor? <a href="http://docs.python.org/py3k/library/time.html?highlight=time.timezone#time.timezone">time.timezone</a> için

ABD'de olumlu

Batı Avrupa'nın en batı UTC saniye cinsinden, yerel (DST) diliminin ofset (negatif, sıfır).

Batı Avrupa'nın çoğu için neden negatif bir değer döndürdüğünü bilen var mı? Bu ülkeler olumlu bir sapma içinde ve olumsuz bir durumda değil.

Örnek: Brüksel ... UTC + 1 saat diliminde olduğu

+0

Bir yazım hatası olduğundan şüpheleniyorum. Gerçekten ne döndüğünü denedin mi? –

+0

'UTC_Time - Brussels_Time = -1' saat. Böylece bu sayı ve toplamı UTC zamanları ile alabilir ve Brüksel kez alabilirsiniz. Diğer yolu yapabilirler ve sadece çıkarmanız gerekir. – JBernardo

+0

Eğer UTC_ _west saniye cinsinden tanımlanırsa, UTC _east_ olan saat dilimlerinin negatif değeri anlamlıdır. Bu beni nadir görülen bir şey değil, ama açıklama tutarlı. – omz

cevap

7

Bu Unix eser olduğunu. Saat dilimleri için standart sayısal tanım UTC'den (UTC + 1 Brüksel için, UTC-5 New York, vb.) Doğuya doğru saatlerce ve dakikalarda olmasına rağmen, Unix timezone, UTC'den batı saniye cinsinden ölçülür. http://pubs.opengroup.org/onlinepubs/7908799/xsh/tzset.html itibaren

:

harici değişken timezone örneğin, Eşgüdümlü Evrensel Saat'e (UTC) ve yerel standart zaman arasındaki saniye cinsinden farkı olarak ayarlanır:

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 

Unix'in neden geriye doğru olduğuna göre, muhtemelen Unix'in ABD'de geliştirildiği için tarihsel bir kaza olduğunu tahmin ediyorum.