Seite 1 von 1

Datum formatierung

Verfasst: Freitag 1. Juni 2018, 11:04
von Omm
Hallo zusamme

ich habe ein Datumformat das so "Wed Jun 1 00:00:00 2018" aussieht.
Nun soll das aber so "01.06.2018" aussehen.
Muss ich das über einen String mache? Denke mal nicht. Herr Google konnte mir da nicht helfen.
Hat jemand einen Link oder ne Lödung für mich.

Re: Datum formatierung

Verfasst: Freitag 1. Juni 2018, 11:12
von Sirius3
Du hast doch schon einen String. Also mußt Du es über einen String machen, was Du auch immer damit meinst. Es gibt `datetime.datetime.strptime`, das auch mit Monatsnamen umgehen kann (%b).

Re: Datum formatierung

Verfasst: Freitag 1. Juni 2018, 12:04
von Omm

Code: Alles auswählen

required_date = datetime.strptime(self.stardatum, "%a %m %d %H:%M:%S %Y")
kommt die Fehlermeldung :
required_date = datetime.strptime(self.stardatum, "%a %m %d %H:%M:%S %Y")
TypeError: strptime() argument 1 must be str, not DateTime

d.h. es ist ein Datumformat, oder nicht?

und wenn ich es über str mache kommt.

Code: Alles auswählen

required_date = str(self.stardatum)
required_date = datetime.datetime.strptime(required_date, "%a %m %d %H:%M:%S %Y")
print(required_date)
required_date = datetime.datetime.strptime(required_date, "%a %m %d %H:%M:%S %Y")
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'

Re: Datum formatierung

Verfasst: Freitag 1. Juni 2018, 12:19
von sls
Es wäre hilfreich wenn du auch zeigst, wie du `self.stardatum` erzeugst. Entweder du erzeugst das Datum on the fly und formatierst es entsprechend:

Code: Alles auswählen

>>> datetime.date.today().strftime("%d.%m.%Y")
'01.06.2018'
Oder aber du hast ein fixes Datum das nicht gerade erst erzeugt wurde:

Code: Alles auswählen

>>> stardatum = datetime.date(2018, 6, 1)
>>> stardatum.strftime("%d.%m.%Y")
'01.06.2018'

Re: Datum formatierung

Verfasst: Freitag 1. Juni 2018, 12:30
von Omm

Code: Alles auswählen

# Kalender
self.start_cal_box = wx.adv.DatePickerCtrl(self.panel, wx.ID_ANY,
style=wx.TAB_TRAVERSAL | wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY | wx.adv.DP_ALLOWNONE,
                                                   size=(BREITE, -1))
self.Bind(wx.adv.EVT_DATE_CHANGED, self.StartOnDateChanged, self.start_cal_box)


def StartOnDateChanged(self, evt):
        self.stardatum = self.start_cal_box.GetValue()
Es kommt aulso vom Frame her als Datumformat.

Re: Datum formatierung

Verfasst: Freitag 1. Juni 2018, 17:34
von sls
Er holt sich die Zeit also via wx.DateTime. Dann musst du die entsprechenden Werkzeuge der wx-Library zum parsen des Datums verwenden.

Ungetestet:

Code: Alles auswählen

self.stardatum.Format("%d.%m.%Y")
Hier steht, wie man das machen kann: https://wxpython.org/Phoenix/docs/html/ ... ime.Format