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

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

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
Gruß!
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

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.
Gruß!
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

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:
Gruß!
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Antworten