Wie komme ich von einem String im ctime-Format zu einem Datumsobjekt mit denselben Angaben. Kann das mitgelieferte datetime Modul das bewerkstelligen?
Bsp.:
Der String 'Mon Dec 30 21:27:03 2002' soll in ein Datumsobjekt mit dem Format "2002-30-12" konvertiert werden. Zeitangabe ist nicht erforderlich.
Datumskonvertierung: String im Ctime Format => Datumsobje
http://docs.python.org/library/time.html#time.strptime
Edit: Falls du nur das Datum willst, ist eventuell die Methode von datetime.datetime noch geeigneter.
http://docs.python.org/library/datetime ... e.strptime
Edit: Falls du nur das Datum willst, ist eventuell die Methode von datetime.datetime noch geeigneter.
http://docs.python.org/library/datetime ... e.strptime
-
- User
- Beiträge: 34
- Registriert: Donnerstag 18. September 2008, 14:10
Das Beispiel >>> time.strptime("30 Nov 00", "%d %b %y") aus dem Link
http://docs.python.org/library/time.html#time.strptime habe ich bei mir ausprobiert und es funktioniert.
Jedoch stellt sich die Frage ob es auch funktioniert wenn man den date_format String in eine Variable gibt?
erhalte ich:
http://docs.python.org/library/time.html#time.strptime habe ich bei mir ausprobiert und es funktioniert.
Jedoch stellt sich die Frage ob es auch funktioniert wenn man den date_format String in eine Variable gibt?
Code: Alles auswählen
getdatestring = "01 Mar 09"
time.strptime(getdatestring, "%d %b %y")
Code: Alles auswählen
ValueError: time data did not match format: data=01 Mar 09 fmt=%d %b %y
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Also bei mir klappt's:
Code: Alles auswählen
In [1]: import time
In [2]: getdatestring = "01 Mar 09"
In [3]: time.strptime(getdatestring, "%d %b %y")
Out[3]: time.struct_time(tm_year=2009, tm_mon=3, tm_mday=1, tm_hour=0, tm_min=0,
tm_sec=0, tm_wday=6, tm_yday=60, tm_isdst=-1)
-
- User
- Beiträge: 34
- Registriert: Donnerstag 18. September 2008, 14:10
So hab herausgefunden warum.
Die Daten(Mehrzahl von Datum) liegen in englischer Sprache vor.
Deswegen kommt 01 Mar 09, weill es ja für 1 March 2009 steht.
Hier kommt ein Fehler.
Versuche ich es mit der deutschen Bezeichnung, also mit März:
getdatestring = "01 Mär 09" funktioniert es Genauso muss es oKt statt oCt für Oktober sein... Aber wenn ich 01 Jän 2009 nehme erscheint wieder der Fehler.
Also wie denn nun? Scheint ein Gemisch aus englischen und deutschen Bezeichnungen zu sein im time Modul oder was ist da los?
Die Daten(Mehrzahl von Datum) liegen in englischer Sprache vor.
Deswegen kommt 01 Mar 09, weill es ja für 1 March 2009 steht.
Hier kommt ein Fehler.
Versuche ich es mit der deutschen Bezeichnung, also mit März:
getdatestring = "01 Mär 09" funktioniert es Genauso muss es oKt statt oCt für Oktober sein... Aber wenn ich 01 Jän 2009 nehme erscheint wieder der Fehler.
Also wie denn nun? Scheint ein Gemisch aus englischen und deutschen Bezeichnungen zu sein im time Modul oder was ist da los?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Vielleicht solltest du bedenken, dass Jänner in Deutschland als Januar bekannt ist und somit ein anderes Kürzel hat..SteeWeeDee hat geschrieben:Aber wenn ich 01 Jän 2009 nehme erscheint wieder der Fehler.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ahaa. Ich hab mich schon gewundert, wie er auf das ``Jän`` kommt^^Leonidas hat geschrieben:Vielleicht solltest du bedenken, dass Jänner in Deutschland als Januar bekannt ist und somit ein anderes Kürzel hat..SteeWeeDee hat geschrieben:Aber wenn ich 01 Jän 2009 nehme erscheint wieder der Fehler.
Komisch, dass bei dir deutsch für die Time-Formatierung verwendet wird. Bei mir ist das englisch.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich nehme an, dass da irgendwie Locales mit drin hängen.ice2k3 hat geschrieben:Komisch, dass bei dir deutsch für die Time-Formatierung verwendet wird. Bei mir ist das englisch.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 34
- Registriert: Donnerstag 18. September 2008, 14:10
Gibt es noch andere Möglichkeiten? Habe mir mal mxDatetime angesehen. Hat jemand Erfahrung damit und weiß ob es dort auch eine Art von strptime gibt?
Edit: mx.datetime runtergeladen - installiert - importiert und dort gibt es strptime() ebenfalls; auch mit dem gleichem Syntax. Und funktioniert!
Danke für den strptime() Anstoß!
Edit: mx.datetime runtergeladen - installiert - importiert und dort gibt es strptime() ebenfalls; auch mit dem gleichem Syntax. Und funktioniert!
Danke für den strptime() Anstoß!