regex für ecodms = Datum

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
biba5384
User
Beiträge: 2
Registriert: Sonntag 24. November 2024, 21:48

Bei mir wird das Datum in 24. März 2023 ausgegeben.
Wie mache ich daraus 24.03.2023?

Vielen DANK!
Benutzeravatar
DeaD_EyE
User
Beiträge: 1297
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

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
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
__blackjack__
User
Beiträge: 14237
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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?
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
Benutzeravatar
DeaD_EyE
User
Beiträge: 1297
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

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())
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
__blackjack__
User
Beiträge: 14237
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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.
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
Antworten