2017-08-14 10 views
-1

Ich habe in einem Datenrahmen eine Spalte Zeit in UTC-Zeit, und ich möchte es in Ortszeit konvertieren. Ich habe diesen Code:datetime.strptime mit lokaler Zeitzone

from_zone = tz.tzutc() 
to_zone = tz.tzlocal() 
# utc = datetime.utcnow() 
utc = datetime.strptime('2011-01-21 02:37:21', '%Y-%m-%d %H:%M:%S') 
utc = utc.replace(tzinfo=from_zone) 
# Convert time zone 
central = utc.astimezone(to_zone) 

Dann habe ich es in einer Textdatei in einer Zeichenfolge zu speichern. So hat die Zeichenfolge dieses Format:

2011-01-21 02: 37: 21 + 02: 00

Dann lade ich die Textdatei in einem anderen Programm und ich möchte es konvertieren in Datetime-Format mit der lokalen Zeitzone

Also habe ich versucht datetime.strptime() mit dem %Z Parameter zu verwenden:

datetime.strptime(central,'%Y-%m-%d %H:%M:%S.%f Paris, Madrid') 

Paris, Madrid ist was der Befehl datetime.tzname(central) gab mir. Es funktioniert nicht und ich habe keine Erklärungen zur Verwendung von %Z gefunden.

Wenn Sie irgendwelche Erklärungen haben, bitte helfen Sie mir.

Antwort

0

Die Funktion datetime.strptime() funktioniert ein bisschen anders als diese.

Das erste Argument ist die Zeichenfolge mit der Zeitinfo und das zweite Argument ist eine Formatierung, die es der Funktion ermöglicht, die Zeichenfolge in ein Datetime-Objekt zu übersetzen.

'.%f Paris, Madrid' macht die Funktion zu denken, dass diese Wörter in der Zeichenfolge angezeigt werden, so dass ein Fehler auftreten wird, wenn die Formatierung und die Zeichenfolge nicht übereinstimmen.

Das würde richtige Code sein:

datetime.strptime(central,'%Y-%m-%d %H:%M:%S%z') 
Verwandte Themen