Seite 1 von 1

date und time incrementieren

Verfasst: Freitag 17. April 2009, 16:28
von endu
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

Verfasst: Freitag 17. April 2009, 16:48
von kryz
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

Verfasst: Freitag 17. April 2009, 16:56
von 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.