Seite 1 von 1

regex für ecodms = Datum

Verfasst: Sonntag 24. November 2024, 22:13
von biba5384
Bei mir wird das Datum in 24. März 2023 ausgegeben.
Wie mache ich daraus 24.03.2023?

Vielen DANK!

Re: regex für ecodms = Datum

Verfasst: Montag 25. November 2024, 12:08
von DeaD_EyE
Python unterstützt auch andere Sprachen. Mit der stdlib geht das so:

Code: Alles auswählen

import locale
import platform
from datetime import datetime as DateTime


# es gibt Unterschiede zwischen Linux und Windows
# unter Windows kann ich die Tuple von locale.getlocale()
# nicht verwenden
match platform.system():
    case "Linux" | "Darwin":
        locale.setlocale(locale.LC_ALL, locale.getlocale())
    case "Windows":
        locale.setlocale(locale.LC_ALL, locale.getlocale()[0])


print("Sprache:", locale.getlocale())


text = "24. März 2023"
date = DateTime.strptime(text, "%d. %B %Y").date()

print(date.isoformat())

https://docs.python.domainunion.de/3/li ... e.strftime
https://docs.python.domainunion.de/3/li ... ocale.html

Re: regex für ecodms = Datum

Verfasst: Montag 25. November 2024, 13:10
von __blackjack__
@DeaD_EyE: Warum `getlocale()`? In der Dokumentation wird doch vorgeschlagen einfach die leere Zeichenkette zu setzen wenn man dieses Verhalten möchte.

@biba5384: Wo wird das Datum in diesem Format bei Dir ausgegeben? Warum änderst Du das nicht an der Quelle, statt es hinterher geradezubiegen?

Re: regex für ecodms = Datum

Verfasst: Montag 25. November 2024, 13:27
von DeaD_EyE
Dann ist es ja noch einfacher:

Code: Alles auswählen

import locale
import platform
from datetime import datetime as DateTime

locale.setlocale(locale.LC_ALL, "")
print("Sprache:", locale.getlocale())


text = "24. März 2023"
date = DateTime.strptime(text, "%d. %B %Y").date()

print(date.isoformat())

Re: regex für ecodms = Datum

Verfasst: Montag 25. November 2024, 13:39
von __blackjack__
Wobei es natürlich sein kann, dass die System-Locale gar nicht den Datumsangaben entspricht. Da könnte man dann zu so etwas wie https://pypi.org/project/dateparser/ greifen.