Seite 1 von 1

wx._misc.DateTime --> Rückgabe immer gleiches Format?

Verfasst: Montag 28. April 2008, 10:24
von C4S3
Hallo!

Ich habe mir mit PythonCard eine Oberfläche zusammengebastelt und das funktioniert auch super.
Darin enthalten ist ein Kalender, dessen Inhalt (also das ausgewählte Datum) ich mit

Code: Alles auswählen

stopDate = self.components.calStopped.GetDate()
ermittle. Das funktioniert wunderbar.
Ich muss jetzt aus dem Datum nur noch die Sekunden generieren, damit ich weiterkomme. Ich dachte, mit den vielen tollen Funktionen aus dem Time-Modul käme ich hier weiter. Würde ich den Wert als String zurückbekommen, wäre es kein Problem.
Hier aber bekomme ich ein Objekt vom Typ wx._misc.DateTime. Das kann ich auch ganz leicht in einen String umwandeln und so weiterverarbeiten, wie ich mir das vorstelle.

Meine Frage ist nun eigentlich, ob wx._misc.DateTime immer "gleich" aussieht?

Code: Alles auswählen

stopDate = self.components.calStopped.GetDate()
print stopDate
print type(stopDate)
ergibt:
04/28/08 11:01:15
<class 'wx._misc.DateTime'>
Ist dieses Format immer gleich, oder könnte es auch passieren, dass es auf anderen Plattformen anders aussieht? Sonst müsste ich mir was überlegen. Datum getrennt durch Schrägstriche und Monat/Tag/Jahr ist ja nicht sehr üblich bei uns.

Plattform: Windows XP Prof, SP2, Python 2.5

Verfasst: Montag 28. April 2008, 10:46
von HWK
Möglicherweise sieht das auf anderen Maschinen landesspezifisch doch anders aus. Man könnte aber immer ein festes Format vorgeben:

Code: Alles auswählen

>>> import wx._misc
>>> b = wx._misc.DateTime()
>>> b.SetToCurrent()
<wx.DateTime: "04/28/08 11:43:57" at _2052be00_p_wxDateTime>
>>> print b
04/28/08 11:43:57
>>> b.Format('%d.%m.%Y %H:%M:%S')
'28.04.2008 11:43:57'
MfG
HWK

Verfasst: Montag 28. April 2008, 11:00
von C4S3
Danke, das funktioniert wunderbar.

Daraus ergibt sich aber für mich noch eine Frage:

Bevor ich jetzt umständlich versuche, den formatierten String umzuwandeln, bis ich die Zeit in Sekunden habe - gibt es noch ein Möglichkeit, das gleich zu machen? Ich meine, das Datum gleich so zu formatieren, dass eine Methode das so parsen kann, dass ich die "Sekunden seit beginn der Epoche" bekomme?

Wenn ich die Zeit so als formatierten String habe, dass ich das ganze irgendwie in einen Tupel stopfen kann, so kann ich dann ja mit time.mktime(meinTupel) die Sekunden bekommen. Aber mir erscheint das reichlich umständlich.

Verfasst: Montag 28. April 2008, 11:14
von HWK

Code: Alles auswählen

>>> import wx._misc
>>> b = wx._misc.DateTime()
>>> b.SetToCurrent()
<wx.DateTime: "04/28/08 12:13:20" at _188edb01_p_wxDateTime>
>>> b.GetTicks()
1209377600
MfG
HWK

Verfasst: Montag 28. April 2008, 11:33
von C4S3
HWK hat geschrieben:>>> import wx._misc
>>> b = wx._misc.DateTime()
>>> b.SetToCurrent()
<wx.DateTime: "04/28/08 12:13:20" at _188edb01_p_wxDateTime>
>>> b.GetTicks()
1209377600
MfG HWK
Oh! :shock:
Batterien dabei.

Danke vielmals, das ist ja sehr einfach. Man müsste nur wissen, was wofür gut ist und damit habe ich oft noch Schwierigkeiten. :oops:

Verfasst: Montag 28. April 2008, 11:56
von HWK