Zeitangabe bzw. Datumsangabe

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
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Guten Morgen Forum,

ich hab folgendes Problem.
Ich möchte immer das Aktuelle Datum haben und dieses dann ich meine
Datenbank übertragen wenn Daten geändert werden.
Soll heißen wenn ich in meiner Oberfläche z.B. einen Kunden aufrufe
dessen Anschrift ändere weil er umgezogen ist und die Daten abschicke
das dann in der Datenbank die jeweiligen Felder die geändert wurden
eingetragen werden und das Datum von dem jeweiligem Tag.

Das Datum selbst hab ich mir schon per "print" Angabe anzeigen lassen
nur bin ich nicht ganz mit der Formatierung zufrieden.

Code: Alles auswählen

print(zeit)
da spuckt er mir es so aus = 29, 1, 2015
da stört mich jetzt das Komma und das Leerzeichen

Ich wollte das ganze mit "replace" ersetzen aber leider bekomme ich
eine Fehlermeldung die mir das ganze nicht erlaubt.

Nun die meine Frage an euch: Wie kann ich denn die Ausgabe bzw. das Datum
so anpassen da es so aussieht? --> 29.1.2015

Gruß Kalli

Ps.: Hier der Code dazu

Code: Alles auswählen

ts = time.localtime()
zeit = []
zeit_tag = (ts.tm_mday)
zeit_monat = (ts.tm_mon)
zeit_jahr = (ts.tm_year)
zeit.append(zeit_tag)
zeit.append(zeit_monat)
zeit.append(zeit_jahr)
oder halt auch so geschrieben:

Code: Alles auswählen

ts = time.localtime()
zeit = (ts.tm_mday,ts.tm_mon,ts.tm_year)
print(zeit)
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@Kalli87
Für das, was Du vorhast, würde ich das datetime module verwenden. Schau' Dir dort einmal die ``today()`` bzw. ``now()`` Methoden an.

Die Formatierung der Ausgabe erledigst Du dann am besten mit ``format()``. In der Doku zu ``format()`` ist unter anderen auch ein ``datetime``-Beispiel.

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Kalli87 hat geschrieben:

Code: Alles auswählen

ts = time.localtime()
zeit = (ts.tm_mday,ts.tm_mon,ts.tm_year)
print(zeit)
So erstellst du einfach die Stringrepräsentation des erzeugten Tupels. Das kann man für Debugging-Zwecke gebrauchen, aber nicht für eine kontrollierte Ausgabe.

Die Lösung dafür könnte normale Stringformatierung sein.

Code: Alles auswählen

>>> import time
>>> ts = time.localtime()
>>> print('{}.{}.{}'.format(ts.tm_mday, ts.tm_mon, ts.tm_year))
29.1.2015
Hier würde ich allerdings die passende Funktion aus dem time-Modul verwenden.

Code: Alles auswählen

>>> import time
>>> ts = time.localtime()
>>> print(time.strftime('%d.%m.%Y', ts))
29.01.2015
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Danke euch beiden :)
Sirius3
User
Beiträge: 18335
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kalli87: am besten läßt Du Dir das Änderungsdatum von der Datenbank direkt eintragen. Entweder per Trigger, oder indem Du beim UPDATE die SQL-Funktion NOW() übergibst. Die Datenbank sorgt dann dafür, dass das Datum auch konsistent ist, und nicht vom Client abhängt, der gerade den Eintrag macht.
Antworten