2009-06-17 2 views
2

Ich versuche, einen Twitter-Feed in django zu analysieren, und ich habe ein seltsames Problem Umwandlung die veröffentlichte Zeit ab:Zeitstempel Umwandlung von einer Stunde

Ich habe die Zeit von der Einspeisung in eine vollständige 9-Tupel korrekt:

>> print tweet_time 
time.struct_time(tm_year=2009, tm_mon=6, tm_mday=17, tm_hour=14, tm_min=35, tm_sec=28, tm_wday=2, tm_yday=168, tm_isdst=0) 

Aber wenn ich nenne das:

tweet_time = datetime.fromtimestamp(time.mktime(tweet_time)) 

ich mit der einer Zeit 1 Stunde am Ende voraus:

>> print tweet_time 
2009-06-17 15:35:28 

Was fehlt mir hier?

Antwort

5

versuchen Sie, die isdst (is daily savings flag) auf eine -1 zu spiegeln und sehen Sie, ob das das Problem behebt. -1 sagt ihm, die lokale Sommerzeiteinstellung zu verwenden (raten) und damit zu rollen.

+1

Ihr Vorschlag war richtig, obwohl einige Hinweise, wie das zu tun wäre, hilfreich gewesen wären. Der Arbeitscode ist dies: tweet_time = datetime.fromtimestamp (time.mktime (tweet_time [0: 8] + (-1,))) All das Problem für eine schlechte DST-Flag. Gr. –

+1

Das erinnert daran, dass Sie UTC intern verwenden und für die Ausgabe nur in die lokale Zeit umwandeln sollten (wie Anzeige). Pytz zur Rettung. – zgoda

+0

@zgoda würde gerne ein sauberes Beispiel sehen, wie man das macht. – neuronet