Yaz saati uygulamasının etkin olup olmadığını nasıl kontrol ederim?Python gün ışığından yararlanma saati
cevap
time.localtime
ve dönüş değeri tm_isdst
bayrağına bakabilirsiniz.
>>> import time
>>> time.localtime()
(2010, 5, 21, 21, 48, 51, 4, 141, 0)
>>> _.tm_isdst
0
time.localtime()
kullanarak, DST geçerli saat dilimi için geçerli olacağı (ya idi) olup olmayacağını görmek için herhangi bir keyfi kez aynı soruyu sorabilir.
Gün ışığının geçerli bilgisayar ayarlarıyla etkin olup olmadığını kontrol etmek isterseniz, time.daylight öğesini kullanın.
>>> import time
>>> print time.daylight
time.daylight sadece bilgisayar bilgisayar seti "Otomatik Yaz saatini Değişiklikler için saati ayarlayın" kalmamış ise, yaz saati şu anda olup olmadığını söyler. Gün ışığından yararlanma ayarı yapılmayan bilgisayarlarda, time.daylight her zaman tüm yıl boyunca 0 olur.
Bilgisayarın yıl boyunca gün ışığından yararlanma saatine göre ayarlanıp ayarlanmayacağını belirlemenin bir yolu, time.tzname ile döndürülen tuple değerini döndürmektir ve eğer bunlar farklıysa (örneğin, len (set (time.tzname))! = 1), o zaman bilgisayarda gün ışığından tasarruf ayarı açık.
'time.daylight yalnızca bilgisayarın şu anda yaz saati uygulamasında olup olmadığını söyler - bu doğru değil. 'time.daylight', yalnızca bilgisayar dst ile ilgili zaman değişikliklerine sahip olacak bir zaman dilimi içinde olduğunda yazıyor. Etkili olup olmadıkları hakkında hiçbir şey söylemiyor. Bu tm_isdst ile kontrol edilebilir –
BTW: tzname için Docs: 'İki dizeden oluşan bir tuple: Birincisi, DST dışı yerel saat diliminin adı, ikincisi de yerel DST saat diliminin adıdır. Herhangi bir DST zaman dilimi tanımlanmamışsa, ikinci dize kullanılmamalıdır. 'Dst tanımlanmamış olsa bile bu nedenle> 1 olabilir. –
Yanıtı yanlış olduğu için silmek için oy verin. –
time.daylight özelliğini kullanmak biraz daha açık olabilir. Geçerli saat diliminiz DST'ye sahipse sıfır olmayan bir sonuç döndürecektir. –
@brian buck: Bu farklı olsa da. Belirli bir saat dilimi için, time.daylight işlevi sabittir, çünkü bir gün ışığı bölgesi var veya yok. Diğer taraftan, 'tm_isdst' bayrağı, belirtilen sürenin * DST başlangıç ve bitiş tarihleri arasında olup olmadığını gösterir. –
"time.daylight" öğesinin üzerindeki bu karışıklık daha büyük bir sorun gibi görünüyor: http://bugs.python.org/issue7229. –