Hier ist, was Sie tun sollten:
from datetime import datetime
datetime_object = datetime.strptime('1 June 2005','%d %B %Y')
s = datetime_object.strftime("%d/%m/%y")
print(s)
Ausgang:
>>> 01/06/05
Sie sehen Ihre strptime
zwei Parameter erfordert.
strptime(string[, format])
Und die Zeichenfolge wird nach einem Format in ein datetime
Objekt umgewandelt werden Sie angeben.
Es gibt verschiedene Formate
%a - abbreviated weekday name %A - full weekday name %b - abbreviated month name %B - full month name %c - preferred date and time representation %C - century number (the year divided by 100, range 00 to 99) %d - day of the month (01 to 31) %D - same as %m/%d/%y %e - day of the month (1 to 31) %g - like %G, but without the century %G - 4-digit year corresponding to the ISO week number (see %V). %h - same as %b %H - hour, using a 24-hour clock (00 to 23)
Die oben einige Beispiele sind. Hier finden Sie formats
Werfen Sie einen Blick auf diese beiden!
%b - abbreviated month name %B - full month name
Es sollte in einem ähnlichen Muster zu der Zeichenfolge, die Sie bereitstellen. Verwirrend werfen Sie einen Blick auf diese Beispiele.
>>> datetime.strptime('1 jul 2009','%d %b %Y')
datetime.datetime(2009, 7, 1, 0, 0)
>>> datetime.strptime('1 Jul 2009','%d %b %Y')
datetime.datetime(2009, 7, 1, 0, 0)
>>> datetime.strptime('jul 21 1996','%b %d %Y')
datetime.datetime(1996, 7, 21, 0, 0)
Wie Sie sehen können, basierend auf dem Format wird die Zeichenfolge in ein Datetime-Objekt umgewandelt. Jetzt schau!
>>> datetime.strptime('1 July 2009','%d %b %Y')
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
datetime.strptime('1 July 2009','%d %b %Y')
File "/usr/lib/python3.5/_strptime.py", line 510, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/usr/lib/python3.5/_strptime.py", line 343, in _strptime
(data_string, format))
ValueError: time data '1 July 2009' does not match format '%d %b %Y'
Warum Fehler, da jun
oder Jun
(Kurzform) für %b
steht. Wenn Sie eine June
liefern, wird es verwirrt. Was ist jetzt zu tun? Das Format wurde geändert.
>>> datetime.strptime('1 July 2009','%d %B %Y')
datetime.datetime(2009, 7, 1, 0, 0)
Einfach jetzt konvertieren das Datetime-Objekt ist einfach genug.
>>> s = datetime.strptime('1 July 2009','%d %B %Y')
>>> s.strftime('%d/%m/%Y')
'01/07/2009
Auch die %m
ist das Format für sie in Monaten Anzeige (Zahlen) um mehr über sie zu lesen.
Pythons Fehler sind explizit (obwohl Python 3 eine große Verbesserung in diesem Punkt war). Nehmen Sie sich etwas Zeit, um den Fehler sorgfältig zu lesen: Er sollte deutlich aufzeigen, was falsch ist. Zumindest sollten Sie diesen Fehler mit uns teilen. –