Seite 1 von 1
Zeitstring parsen: Fri, 28 May 2010 13:57:23 +0200 (CEST)
Verfasst: Freitag 28. Mai 2010, 16:32
von rhersel
Wie parst man denn sowas:
Code: Alles auswählen
time.strptime('Fri, 28 May 2010 13:57:23 +0200 (CEST)', '%a, %d %B %Y %X und_hier_fehlt_noch_was')
Das ist der Date-String wie er in (fast) jedem Email Header steckt.
Re: Zeitstring parsen: Fri, 28 May 2010 13:57:23 +0200 (CEST
Verfasst: Freitag 28. Mai 2010, 16:42
von b.esser-wisser
Du hast es ja schon bis
time.strptime() geschafft - brauchst du jetzt Hilfe beim englisch lesen?
hth, Jörg
ps.: das Beispiel zu
time.strftime() (da werden die Platzhalter aufgezählt) macht genau das Gegenstück zu dem was du machen willst...
Re: Zeitstring parsen: Fri, 28 May 2010 13:57:23 +0200 (CEST
Verfasst: Freitag 28. Mai 2010, 16:59
von rads
Beispiel von der Seite:
Code: Alles auswählen
>>> strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
'Thu, 28 Jun 2001 14:17:15 +0000'
sollte genau das gleiche Format sein
Re: Zeitstring parsen: Fri, 28 May 2010 13:57:23 +0200 (CEST
Verfasst: Freitag 28. Mai 2010, 19:11
von rhersel
Ich bekomme das nicht hin:
Code: Alles auswählen
print time.strptime('Fri, 28 May 2010 13:57:23 +0200 (CEST)', '%a, %d %B %Y %H:%M:%S +0000')
ergibt den Fehler:
Code: Alles auswählen
ValueError: time data 'Fri, 28 May 2010 13:57:23 +0200 (CEST)' does not match format '%a, %d %B %Y %H:%M:%S +0000'
Re: Zeitstring parsen: Fri, 28 May 2010 13:57:23 +0200 (CEST
Verfasst: Freitag 28. Mai 2010, 20:20
von problembär
So wie der String aussieht, kannst Du auch an " " splitten und dann das time- oder datetime-Objekt mit ["28", "May", "2010"] von Hand aufbauen.
Wo ist das Problem?
Re: Zeitstring parsen: Fri, 28 May 2010 13:57:23 +0200 (CEST
Verfasst: Freitag 28. Mai 2010, 20:28
von b.esser-wisser
Um den ganzen String am Stück zu parsen, habe ich auch nichts gefunden, aber das kann man auch von Hand machen, ist nicht so schwierig:
Code: Alles auswählen
import datetime
problem_string = 'Fri, 28 May 2010 13:57:23 +0200 (CEST)'
date_string, offset, _ = problem_string.rsplit(None, 2)
parsed_date = datetime.datetime.strptime('%a, %d %B %Y %H:%M:%S', date_string)
final_data = parsed_date - datetime.timedelta(0, int(offset[:3])*3600 + int(offset[3:])*60)
Weiß jemand wie man "datetime.tzinfo()" benutzt? - ist vielleicht einfacher
hth, Jörg
Re: Zeitstring parsen: Fri, 28 May 2010 13:57:23 +0200 (CEST
Verfasst: Freitag 28. Mai 2010, 21:07
von Trundle
Mit `email.utils.parsedate()` kann man es parsen.
Re: Zeitstring parsen: Fri, 28 May 2010 13:57:23 +0200 (CEST
Verfasst: Freitag 28. Mai 2010, 21:21
von rhersel
Ja, email.utils funktioniert perfekt.
Danke