Ben UTC saat yönteme geçirilen got tarihini dönüştürme iki kod satırlarını içeren bir python komut dosyası yazıyorum:Python saat dilimi yanlış mı?
print "Timezone: %s" % get_localzone()
date = datetime.now(tz=get_localzone())
print "Local time: %s" % date
utc = pytz.utc
utc_date = date.astimezone(utc)
print "UTC date: %s" % utc_date
ve sonucudur: As you can
Timezone: America/Chicago
Local time: 2015-06-17 14:58:45.224827-05:00
UTC date: 2015-06-17 19:58:45.224827+00:00
": 00 -05", yanlış bir şey, ama aynı saat diliminde olan özelleştirilmiş bir datetime nesnesi oluştururken: yerel saatte ofset bakınız olan
date = datetime(2015, 6, 17, 14, 58, 45, tzinfo=get_localzone())
sonuç haline s ": 00 -05" için "-05: 51"
Timezone: America/Chicago
Local time: 2015-06-17 14:58:45-05:51
değiştirildi ofset. Aynı zamanda ilk "datetime.now()" nin üretildiğini ve saat diliminin değişmediğini de kullandım, birisi bana bunun neden olduğunu açıklıyor mu? Teşekkürler! Bunun yerine tzinfo
parametresi atanması
Detaylı yanıt için teşekkürler, benim sorunumu çözdü :) –
@YueQiLi: not: 'tz.localize (datetime.now())' yerine 'datetime.now (tz)' kullanmalısınız. İkincisi, yerel zaman belirsiz ise (örneğin, bir DST geçişi sırasında) başarısız olabilir. Eğer giriş zamanı şimdi değilse o zaman, 'is_dst' parametresini' tz.localize() 'a, dizginlemek için geçebilirsiniz. – jfs
J.F.Sebastian teşekkür @, ben sadece [pytz dokümantasyon] (http://pythonhosted.org/pytz/) üzerinde bir göz attım ve haklısın, benim koduna bu ekleyecektir. Diğer benzer sorulara rağmen, her iki problemin datetime kurucusunun kötüye kullanılmasından kaynaklanmış olmasına rağmen, benim gibi yeni başlayanlar için onları aynı türden bir soruna ayırmak benim için hala zor. [Soruları silinmez yinelenen] (http://meta.stackexchange.com/questions/5221/how-does-deleting-work: Başkalarının çaylak hata bu tür :) –