örn: Gördüğünüz gibidönüştürme datetime nesnesi o saat diliminde saniye Epoch'a
>>> print dt
2012-12-04 19:00:00-05:00
, ben çağın bu tarih saat nesnesini dönüştürmek Bu nasıl datetime nesnesi var GMT -5 saniyede.
Bunu nasıl yaparım?
örn: Gördüğünüz gibidönüştürme datetime nesnesi o saat diliminde saniye Epoch'a
>>> print dt
2012-12-04 19:00:00-05:00
, ben çağın bu tarih saat nesnesini dönüştürmek Bu nasıl datetime nesnesi var GMT -5 saniyede.
Bunu nasıl yaparım?
Tarih saatiniz bir naif datetime değildir, içindeki saat dilimini bilir (yazdırma durumunuz -5'tir). dt nesnesi naif datetime nesnesi olsaydı Yani sadece
>>> import time, pytz
>>> utc = pytz.timezone('UTC')
>>> utc_dt = utc.normalize(dt.astimezone(utc))
>>> time.mktime(utc_dt.timetuple())
1355270789.0 # This is just to show the format it outputs
Epoch'a bunu dönüştürmek önce UTC olarak ayarlamak gerekiyorsa, bulurken zamandan tasarruf aydınlığa uymayı zaman dilimleri ile çalışmak gerekiyordu GMT 0 arasında doğru saatler. Örneğin, kışın Romanya, +2 ve yaz aylarında +3 var.
>>> import time,pytz
>>> timezone = pytz.timezone('America/New_York')
>>> local_dt = timezone.localize(dt)
Artık olmayan bir naif datetime var ve ben ilk açıkladı gibi çağ zamanını elde edebilirsiniz: sizin -5 Örneğin
, New-York yapacağız. İyi eğlenceler
Muhtemelen "-05: 00" belirtilen tarih ve saat dilimi için doğru ofseti kodlar, o zaman neden geriye doğru çalışma zahmetine gidersiniz? –
Teşekkür ederim, baskıdaki -5'i kaçırdım. Cevabı, naif olmayan datetime'dan nasıl dönüştürüleceğini açıklamak için uyarladım. – mihaicc
Bu çözüm benim için daha iyi çalıştı. http://stackoverflow.com/a/11111177/969984 –
Epoch saniye, saat dilimi tarafından yok. Tanım olarak onlar UTC ve dünya çapında aynıdır. Her bir saat dilimi, yerel saat için anında dönüşür. –
@jimmcnamara Bu anahtar. Son derece yardımcı efendim. –