2017-06-14 2 views
0

Mein Python-Code zeigt einen Fehler im Datumsformat. Was sollte das richtige Format für diese Art von Datum sein: '09-Jul-11 12:00:00 '? Das Datum wird als Zeichenfolge aus einer Textdatei genommen. Dies ist der Code, den ich für Datum und Uhrzeit verwendet habe.Fehler im Datumsformat in Python

date=datetime.datetime.strptime(date, "%d-%B-%y %H:%M:%S %p") 

Das war der Fehler, den ich bekam.

ValueError: time data '09-Jul-11 12:00:00 AM' does not match format '%d-%B-%y %H:%M:%S %p' 

P. S .: Ich bin mit Python 3.

+0

Bevor Sie hierher kommen, müssen Sie die Dokumentation konsultieren. https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior –

+0

... und lies [help/on-topic], [ask] und [mcve]. – boardrider

Antwort

1

Es ist das falsche Format für Monat und Stunde. Verwenden Sie %b statt %B (Monat als Gebietsschema des abgekürzten Namen [1]) und %I statt %H (12-Stunden-Format).

date=datetime.datetime.strptime(date, "%d-%b-%y %I:%M:%S %p") 

[1]: Dank an Ricky Han Kommentar

+1

% b \t Monat als abgekürzter Name des Gebietsschemas. \t Jan, Feb, ..., Dezember (en_US); –

0

Online Demo %b sollte für abgekürzten Monat name.You hat %B verwendet werden, die für die vollständigen Monatsnamen verwendet wird.

%H für Stunde verwendet wird, eine 24-Stunden-Uhr unter Verwendung von (00 bis 23). %I für Stunde verwendet, eine 12-Stunden-Uhr (01 bis 12)

import datetime 
date = '09-Jul-11 12:00:00 AM' 
date=datetime.datetime.strptime(date, "%d-%b-%y %I:%M:%S %p") 
print(date) 
+0

'% H' ist auch falsch, für PM Stunden. –

+0

@ Błotosmętek Vielen Dank –

0

Das richtige Format-String verwendete, ist: "%d-%b-%y %I:%M:%S %p" (%b für abgekürzten Monat, %I für 12-Stunden-Uhr).