Gegeben eine Zeichenfolge, die wie "Hours:5 Minutes:34 Seconds:28"
oder "Minutes:34 Seconds:28"
aussieht, gibt es einen Pythonic Weg, um es in ein datetime
Objekt zu konvertieren? Ich möchte keine Regex verwenden, wenn es einen einfacheren Weg gibt.Delta-Zeit Zeichenfolge zu Datetime-Objekt
-2
A
Antwort
2
Ja, gibt es. Sie können es wie folgt tun:
import time
datetime_string = "Hours:5 Minutes:34 Seconds:28"
if "Hours" in datetime_string:
datetime_object = time.strptime(datetime_string, "Hours:%H Minutes:%M Seconds:%S")
elif "Minutes" in datetime_string:
datetime_object = time.strptime(datetime_string, "Minutes:%M Seconds:%S")
else:
datetime_object = time.strptime(datetime_string, "Seconds:%S")
Hinweis: Wenn Sie Datetime-Objekt zu erstellen, Werte, die Sie liefern nicht mit Standard values.So gefüllt werden, falls datetime_string
nur Sekunden, Stunden und Minuten enthält, wird auf 0
eingestellt werden.
2
Sie datetime.strptime()
verwenden können Zeichenfolge in datetime
Objekt als konvertieren:
>>> from datetime import datetime
>>> date_object = datetime.strptime('Hours:5 Minutes:34 Seconds:28', 'Hours:%H Minutes:%M Seconds:%S')
>>> date_object
datetime.datetime(1900, 1, 1, 5, 34, 28)
# ^^^
# Hour Min Seconds
Da Sie in der Zeichenfolge nicht über Datum, wird es das Standarddatum 1 Jan 1990
halten. Ich denke, was Sie brauchen, ist datetime.time()
, die time
Objekt mit der gleichen Stunde, Minute, Sekunde und Mikrosekunde wie in Ihnen datetime
Objekt zurückgeben. (tzinfo ist None
). Zum Beispiel:
>>> date_object.time()
datetime.time(5, 34, 28)
# ^^^
# Hour Min Seconds
wo date_object
von datetime
Typ zuvor erstellt ist.
Verwandte Themen
- 1. Einfache Möglichkeit, die Deltazeit zu verwenden, um die Bewegung weich zu machen
- 2. Ganzzahl zu Zeichenfolge C
- 3. Cron zu lesbaren Zeichenfolge
- 4. Boost Eigenschaftsbaum zu Zeichenfolge
- 5. Data.ByteString.Lazy.Internal.ByteString zu Zeichenfolge?
- 6. DataSet.WriteXml zu Zeichenfolge
- 7. Whitespace-Zeichenfolge zu Whitespace
- 8. Zeichenfolge zu Hexadezimalwert
- 9. Parsen Zeichenfolge zu modellieren
- 10. Zeitraum zu Zeichenfolge
- 11. Schleife zu verketten Zeichenfolge
- 12. mod_rewrite Regel zu Abfrage Zeichenfolge zu verhindern
- 13. Wie binäre Zeichenfolge zu dict zu analysieren?
- 14. fparsec zu Sequenz von Zeichenfolge zu analysieren
- 15. rendering JSP zu einer Zeichenfolge
- 16. Keras model.summary() Objekt zu Zeichenfolge
- 17. pazifische Zeit Zeichenfolge zu Zeit
- 18. Serialize MongoDB ObjectId zu Zeichenfolge
- 19. Replace_if in Zeichenfolge zu ersetzen
- 20. RC2102: Zeichenfolge Literal zu lang
- 21. Regex zu Wörterbücher in Zeichenfolge
- 22. Handschrifterkennung von Bild zu Zeichenfolge
- 23. Talend konvertieren ENUM zu Zeichenfolge
- 24. Komma getrennte Zeichenfolge zu Array
- 25. Django REST Zeichenfolge zu entkommen
- 26. Versucht, eine Zeichenfolge zu entfernen
- 27. Emulieren Zeichenfolge zu Etikett dict
- 28. Python Zeichenfolge Formatierung zu langsam
- 29. wie diese Zeichenfolge zu entfernen
- 30. Postgres konvertieren Zeichenfolge zu Zeit
Warum haben Sie zweimal "Minuten" und "Sekunden"? – Fejs
Nein, "Stunden: 5 Minuten: 34 Sekunden: 28", "Minuten: 34 Sekunden: 28", "Sekunden: 28". Dies ist ein Beispiel für eine Eingabezeichenkette mit Datum, String besteht immer aus Secounds und wenn neede besteht aus Minutes, Houers, Days ... –