Datumsformat einheitlich anpassen

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
Korea-2003
User
Beiträge: 25
Registriert: Mittwoch 23. April 2008, 13:47

Donnerstag 24. April 2008, 09:34

Hi :)

ich möchte mir ein kleines Modul bauen, welches mir die üblichen Datumsformate in ein einheitliches ausgibt.
Bsp.: datum1 = '19.08.2006', datum2 = '18/05/2006', datum3 = '2007-11-23'
Nun soll zum Schluss das Format mit dem "." ausgegeben werden, so wie bei Datum1.
Lieder habe ich nach endlos langem Probieren mit strftime und strptime keine Lösung gefunden? Gibt es solch ein Modul schon oder könnt ihr mir mit ein paar Zeilen Code weiterhelfen?

MfG :)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 24. April 2008, 10:07

Korea-2003 hat geschrieben:die üblichen Datumsformate
Hallo Korea-2003!

http://pypi.python.org/pypi/parsedatetime

Und vielleicht ist hier http://pypi.python.org/pypi?%3Aaction=s ... mit=search auch noch etwas dabei.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Donnerstag 24. April 2008, 10:24

Wobei die "üblichen" Datumsformate nicht eindeutig sind. Ist zum Beispiel '9/11/2008' der 9. November oder der 11. September? Beides ist möglich.
lunar

Donnerstag 24. April 2008, 10:26

Alternativ bietet auch python-dateutil ein parser-Modul. Der Vorteil an python-dateutil ist, dass es zumindest meiner Erfahrung nach relativ verbreitet ist, und noch andere nützliche Funktionen wie Behandlung relative Zeitabschnitte oder Zeitzonen-Definitionen mitbringt.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Donnerstag 24. April 2008, 12:30

Wenn es nur um genau das geht, was der OP beschrieben hat, dann würde ich es ohne irgendwelche Extramodule einfach mittels Zeichenkettenoperationen umwandeln:

Code: Alles auswählen

>>> "23/03/2007".replace("/",".")
'23.03.2007'
>>> ".".join("2007-03-23".split("-")[::-1])
'23.03.2007'
Korea-2003
User
Beiträge: 25
Registriert: Mittwoch 23. April 2008, 13:47

Donnerstag 24. April 2008, 15:40

Hi,

die letzte Lösung hat mir am Besten gefallen, da ich keine zusätzliche Module benötige.

MfG :)
lunar

Freitag 25. April 2008, 07:53

Dir sollte allerdings bewusst sein, dass diese Art des Parsings alles andere als robust und fehlerresistent ist. Ich persönlich nehme lieber ein fertiges, getestetes Modul, anstatt jedes Mal das Rad neu zu erfinden.
Antworten