Schau dir das datetime-Modul (2.3+) an, da gibt es timedelta-Objekte.
Folgende Möglichkeit:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import datetime
t_hr, t_min, t_sec, t_msec = (12, 45, 7, 123)
tobj = datetime.time(t_hr, t_min, t_sec, t_msec)
print tobj
dtobj = datetime.datetime.combine(datetime.datetime.today(), tobj)
print dtobj
tdelta = datetime.timedelta(hours=2, minutes=17, seconds=31, microseconds=321)
print tdelta
newtime = dtobj + tdelta
print newtime
print newtime.strftime('%H:%M:%S') + (',%06d' % newtime.microsecond)
|
Die Ursprungszeit habe ich einfach mal fest vergeben. Die kannst du entweder über time.strptime() beziehen (was aber leider keine Mikrosekunden kennt [edit: das liegt darin begründet, dass strftime() in ANSI C das ebenfalls nicht tut], musst also vorher absplitten und hinterher wieder anfügen) oder gleich mit .split(',') und .split(':') bzw. alternativ Regex (dürfte langsamer und umständlicher sein) auseinandernehmen.
Das timedelta-Objekt stellt die Zeitdifferenz dar, die du verrechnen möchtest. Hier kannst du komfortabel Stunden, Minuten etc. einzeln angeben. Möglicherweise macht es für dich aber mehr Sinn, direkt mit Timestamps zu arbeiten, d.h. die Ursprungszeit und die Differenz als Timestamp zu formulieren und diese dann einfach zu addieren/subtrahieren.
Aus mir nicht ganz verständlichen Gründen kann ich datetime.date- und datetime.datetime-Objekte, nicht aber datetime.time-Objekte mit einem timedelta-Objekt verrechnen, daher habe ich dtobj erzeugt.