date und time incrementieren

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
endu
User
Beiträge: 9
Registriert: Dienstag 31. März 2009, 13:43

Hallo,

ich suche einen möglichst effizienten weg, ein datum, bzw. eine uhrzeit (datetime.time und datetime.date) manuell zu erhöhen.

ideal wäre etwas im sinne von date.day=date.day+1 ... leider ist dieses attribut aber read_only...
genauso siehts bei time aus.

evtl. seh ich in der datetime dokumentation momentan auch nur den wald vor lauter bäumen nicht...

kennt jemand einen effizienteren weg, als das ganze jedesmal in sekunden bzw. sekunden seit 1970 hin und her zu konvertieren? im idealfall mit erkennung ob der entsprechend folgetag im selben oder einem anderen monat liegt
kryz
User
Beiträge: 12
Registriert: Sonntag 3. Februar 2008, 16:55

hallo endu

datetime.timedelta wird wahrscheinlich dein problem lösen

Code: Alles auswählen

day_1 = datetime.date(2009, 10, 10)
delta = datetime.timedelta(1)
day_2 = day_1 + delta
print day_2  # -> 2009-10-11
lunar

Code: Alles auswählen

>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> now
datetime.datetime(2009, 4, 17, 17, 51, 46, 346864)
>>> now + timedelta(days=1)
datetime.datetime(2009, 4, 18, 17, 51, 46, 346864)
Zudem gibt es relativedelta in python-dateutil, mit dem man auch komplexere Aufgaben lösen kann (wie z.B. den nächsten Montag zu einem gegebenen Datum zu finden).

Außerdem gibt es mit mxDateTime eine Alternative zur Standardbibliothek.
Antworten