2012-06-21 9 views
5

Mam trudny czas konwertując ciąg znaków reprezentujących czasy inne niż UTC do UTC z powodu skrótu strefy czasowej.Konwertuj łańcuch czasu innego niż UTC ze skrótem strefy czasowej na czas UTC w python, jednocześnie uwzględniając oszczędności czasu letniego

(aktualizacja:.. Wydaje się, że timezone abbreviations may not be unique jeśli tak, może i powinna być również stara się uwzględnić to)

Próbowałem szukać drogi wokół tego używając datetutil i pytz, ale nie miałem szczęścia.

Sugerowane są sugestie lub obejście tego problemu.

string = "Jun 20, 4:00PM EDT" 

chciałbym przekonwertować do czasu UTC, co stanowi oszczędność dziennych gdy właściwe.

UPDATE: znaleźć kilka odniesień, które mogą pomóc w bardziej doświadczeni użytkownicy odpowiedzieć na Q.

Zasadniczo, to sobie wyobrazić, część rozwiązania robi odwrotność this.

UPDATE KOŃCOWY (UWAGA)

pobranych z dateutil docs examples.

Kilka prostych przykładów opartych na poleceniu date, użycie słownika TZOFFSET w celu zapewnienia przesunięcia strefy BRST.

analizy składniowej ("Cz 25 września 10:36:28 BRST 2003" tzinfos = TZOFFSETS) datetime.datetime (2003, 9, 25, 10, 36, 28, tzinfo = tzoffset ('BRST', -10800))

parsowanie ("2003 10:36:28 BRST 25 września czw.", tzinfos = TZOFFSETS) datetime.datetime (2003, 9, 25, 10, 36, 28, tzinfo = tzoffset ("BRST", -10800))

Połączyć to z biblioteką such as found here. i będziesz miał rozwiązanie tego problemu.

+0

Jakie wartości powinny być wykorzystywane do roku? Obecny? – Bryan

+0

@beargle - tak. Zakładałbym prąd dla wszystkich tych wyników. – snakesNbronies

+0

Tak, skróty stref czasowych nie są unikalne na całym świecie. Czy możesz założyć kraj? –

Odpowiedz

5

Używanie skrótów strefy czasowej Nas Banov's excellent dictionary mapowania UTC offset:

import dateutil 
import pytz 

# timezone dictionary built here: https://stackoverflow.com/a/4766400/366335 
# tzd = {...} 

string = 'Jun 20, 4:00PM EDT' 
date = dateutil.parser.parse(string, tzinfos=tzd).astimezone(pytz.utc) 
+0

Byłem prawie o aby wrócić z aktualizacją dotyczącą bibliotek. – snakesNbronies

Powiązane problemy