2017-01-24 3 views
0

Ich arbeite mit Python und Googles API, ich versuche, und Ereignis mit einer Dauer von einer Stunde zu erstellen. Dazu muss ich ein start dateTime und end dateTime mit und ISO 8601-Format, wie zum Beispiel: 2017-01-25T06:30:00.000+0000.manipulieren ISO 8601 Datetime Strings

Wie würde ich eine Zeichenfolge wie die obige nehmen und eine Stunde hinzufügen, zum Beispiel 2017-01-25T07:30:00.000+0000. Ich habe versucht, die Zeichenfolge zu zerlegen, die Zeichen in Ints/Floats zu konvertieren, aber das funktioniert nicht (streift die '0' ab).

Ich sollte auch sagen, dass diese dateTime einen beliebigen Wert sein könnte, so viele manchmal 2017-01-25T21:15:00.000+0000 zum Beispiel sein. In jedem Fall muss ich nur eine Stunde hinzufügen können, damit das Ereignis mit einer Dauer von einer Stunde erstellt wird. Als zusätzliche Überlegung, wie würde ich mit Ereignissen umgehen, die bei beispielsweise 2017-01-25T23:30:00.000+0000 beginnen, da diese sich bis zum nächsten Tag erstrecken würden.

Vielleicht gibt es einen einfacheren Weg, dies zu tun? Jede Anleitung wird sehr geschätzt.

Antwort

2

Versuchen Sie nicht, direkt mit den ISO-formatierten Strings zu versauen, da Fehler sein werden.

  • analysieren die Zeichenfolge mit Python-dateutil (pip install python-dateutil)
  • es gibt Ihnen eine native Datetime-Python
  • einer Stunde auf die Datumzeit hinzufügen Timedelta mit
  • umformatieren das Ergebnis nach ISO

`` `

from dateutil.parser import parse 
from datetime import timedelta 

d_str = "2017-01-25T06:30:00.000+0000" 
d = parse(d_str) 
d2 = d + timedelta(seconds=3600) 
result = d2.isoformat() 
+0

Ausgezeichnet - Vielen Dank Sie, akzeptierte Antwort. – tuxedozombie