Datum formatierung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Omm
User
Beiträge: 90
Registriert: Samstag 7. April 2018, 14:05

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.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

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).
Omm
User
Beiträge: 90
Registriert: Samstag 7. April 2018, 14:05

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'
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

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'
When we say computer, we mean the electronic computer.
Omm
User
Beiträge: 90
Registriert: Samstag 7. April 2018, 14:05

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.
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

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
When we say computer, we mean the electronic computer.
Antworten