Seite 1 von 1

Beliebiges Datumsformat in datetime konvertieren ....

Verfasst: Samstag 27. April 2024, 07:03
von drnicolas
Gibt es eine universelle Methode um Datumsangaben in das ISO-Format zu konvertieren (oder in datetime)

Hintergrund:
in meinen string-Daten können Datumsangaben in den unterschiedlichsten Formaten auftauchen:
z.B. dd.mm.jjjj (am häufigsten)
aber auch dd.mm.jj, dd/mm/jjjj, dd/mm/jj oder neuerdings jjjj-mm-dd.

Krankenkassen schicken sogar Versicherungsbestätigungen mit Geburtsdatum als "x. Monat Jahr"

Ich könnte nun alles durchprobieren, aber gibt's da was intelligenteres?

Re: Beliebiges Datumsformat in datetime konvertieren ....

Verfasst: Samstag 27. April 2024, 07:20
von __deets__
Nein.

Re: Beliebiges Datumsformat in datetime konvertieren ....

Verfasst: Samstag 27. April 2024, 09:55
von snafu
drnicolas hat geschrieben: Samstag 27. April 2024, 07:03 in meinen string-Daten können Datumsangaben in den unterschiedlichsten Formaten auftauchen:
z.B. dd.mm.jjjj (am häufigsten)
aber auch dd.mm.jj, dd/mm/jjjj, dd/mm/jj oder neuerdings jjjj-mm-dd.

Code: Alles auswählen

from dateutil import parser

DATE_STRINGS = ["27.04.2024", "27/04/2024", "27/04/24", "2024-04-27"]

def main():
    for date_string in DATE_STRINGS:
        print(date_string, "->", parser.parse(date_string))

if __name__ == "__main__":
    main()
Falls das Modul bei dir nicht gefunden wird, musst du es via ``pip install python-dateutil`` installieren. Oder bei einem Linux-System ggf. dessen Paket-Verwaltung benutzen.

Re: Beliebiges Datumsformat in datetime konvertieren ....

Verfasst: Samstag 27. April 2024, 10:13
von nezzcarth
dateparser ist ganz gut darin, allerlei Datums- und Zeitangaben (auch so Sachen wie "gestern") zu parsen.

Re: Beliebiges Datumsformat in datetime konvertieren ....

Verfasst: Samstag 27. April 2024, 11:05
von snafu
Und ``dateparser`` versteht auch das Krankenkassen-Beispiel ("x. Monat Jahr"). :)

Re: Beliebiges Datumsformat in datetime konvertieren ....

Verfasst: Samstag 27. April 2024, 13:12
von __blackjack__
@snafu: Ja.

Code: Alles auswählen

In [145]: dateparser.parse("5. Februar 2024")
Out[145]: datetime.datetime(2024, 2, 5, 0, 0)

Re: Beliebiges Datumsformat in datetime konvertieren ....

Verfasst: Samstag 27. April 2024, 13:19
von snafu
__blackjack__ hat geschrieben: Samstag 27. April 2024, 13:12 @snafu: Ja.
Das war keine Frage von mir, sondern eine Feststellung. ;)