Konvertieren Sie das seltsame Datumsformat in das Standard-Datumsformat - Python, Mysql, Datum, Format

In Schweden benutzen wir manchmal ein seltsames Datumsformat,zum Beispiel ist Neujahr das 31/12. Wenn ich dieses Format als eine Zeichenfolge habe, die ein beliebiges Datum zwischen dem 1. Januar und dem 31. Dezember sein kann, und wenn wir annehmen, dass es in diesem Jahr ist, wie komme ich mit Python in ein Standard-Datumsformat (Format wie 2012-01) -01 und 2012-12-31), die wund sein können, als Datum in einer mySQL-Datenbank gespeichert werden.

Antworten:

2 für die Antwort № 1

Teilen Sie einfach die beiden Werte, ordnen Sie sie ganzen Zahlen zu und aktualisieren Sie a datetime.date() Beispiel:

import datetime
day, month = map(int, yourvalue.split("/"))
adate = datetime.date.today().replace(month=month, day=day)

Durch die Nutzung datetime.date.today() wir bekommen das aktuelle Jahr.

Demo:

>>> import datetime
>>> somevalue = "31/12"
>>> day, month = map(int, somevalue.split("/"))
>>> datetime.date.today().replace(month=month, day=day)
datetime.date(2012, 12, 31)
>>> someothervalue = "1/1"
>>> day, month = map(int, someothervalue.split("/"))
>>> datetime.date.today().replace(month=month, day=day)
datetime.date(2012, 1, 1)

Alternativ könnten Sie die datetime.strptime() Methode um diese Daten zu analysieren, aber Sie müssen das Jahr danach manuell korrigieren (es wird 1900 als Standard verwenden, wenn kein Jahr analysiert wird):

adate = datetime.datetime.strptime(yourvalue, "%d/%m").date()
adate = adate.replace(year=datetime.date.today().year)

0 für die Antwort № 2

Es ist nichts seltsam an diesem Format :)

Du kannst den ... benutzen datetime Modul:

import datetime
d = datetime.datetime.strptime("31/12", "%d/%m").date().replace(year=2012)
print d

>> datetime.date(2012, 12, 31)

Speisekarte