Calculate Datum Zeitunterschied Python

Ich schreibe eine Zeitdifferenzfunktion, um die Zeitdifferenz (Sekunden) zwischen 2 zu berechnen, wobei Datum und Uhrzeit angegeben werden.

def timediff(time1, time2):
    timeformat = '%d%b%Y:%H:%M:%S'
    #time1="01MAR2016:07:11:53"
    #time2="01MAR2016:16:28:38"

    try:
        date_object1 = datetime.strptime(time1, timeformat)
        date_object2 = datetime.strptime(time2, timeformat)
    except ValueError:
        print "time1 format: " + repr(time1)
        print "time2 format: " + repr(time2)
        raise                      

    return abs((date_object2 - date_object1).seconds)  

Es scheint nicht den "Monat, Datum, Jahr" zur Berechnung zu nehmen. Es gibt die richtige Berechnung, wenn es im selben "Monat, Datum, Jahr" @ i

>>> t1="01MAR2016:07:11:53"
>>> t2="01MAR2016:16:28:38"
>>> timediff(t1, t2)
33405

Jedoch mit unterschiedlichen "Monat, Datum, Jahr", gibt es die falsche Antwort. Dies berechnet nur die Zeitdifferenz von ~ 18 Stunden (was ~ 65.000 Sekunden ergibt)

>>> t1="02APR2016:06:43:51"
>>> t2="06APR2016:00:58:03"
>>> timediff(t1, t2)
65652

der 24 Stunden anders gibt es 0

>>> t1="01MAR2016:07:11:53"
>>> t2="02MAR2016:07:11:53"
>>> timediff(t1, t2)
0

Die Datums- und Uhrzeitangabe hat das von mir angegebene Zeitformat

>>> t1="01MAR2016:07:11:53"
>>> t2="02MAR2016:07:11:53"
>>> datetime.strptime(t1, timeformat)
datetime.datetime(2016, 3, 1, 7, 11, 53)
>>> datetime.strptime(t2, timeformat)
datetime.datetime(2016, 3, 2, 7, 11, 53)

Habe ich etwas vermisst?

Ich habe eine andere Alternative, die Datum und Uhrzeit in Sekunden umwandelt. Aber ich möchte immer noch wissen, warum diese Methode nicht funktioniert.

Meine Alternative

def timediff(time1, time2):
    timeformat = '%d%b%Y:%H:%M:%S'
    t1 = datetime.strptime(time1, timeformat)
    t2 = datetime.strptime(time2, timeformat)

    return abs(time.mktime(t1.timetuple()) - time.mktime(t2.timetuple()))

Beispiel

>>> t2
'02MAR2016:07:11:53'
>>> t1
'01MAR2016:07:11:53'
>>> timediff(t1,t2)
86400.0

Antworten auf die Frage(2)

Ihre Antwort auf die Frage