2016-12-28 16 views
0

, wenn ich den folgenden Code verwendet. Ich verstehe, dass ich 12 zur gegebenen Zeit addiere und es 24:00:00 zurückgebe, aber ich bin nicht im Stande zu verstehen, wie man 00:00:00 erhält.Konvertieren von 12 Stunden zu 24 Stunden Python zeigt 24:00:00 als 24:00:00 und nicht 00:00:00

Mein Zeitstempel enthält eine Liste von Zeitwerten.

r = timestamp[:-2] if timestamp[-2:] == "AM" else str(int(timestamp[:2]) + 12) + timestamp[2:8] 
+2

Warum Sie nicht verwenden, um die richtige Art und Weise, dies zu erreichen? (dh das 'datetime'-Modul). – DeepSpace

+0

Haben Sie versucht, das Modul [datetime] (https://docs.python.org/3/library/datetime.html) zu verwenden? –

Antwort

2

Verwenden Sie Modulo-Arithmetik, um durch 24 zu dividieren und den Rest zu erhalten. Ändern Sie dies:

int(timestamp[:2]) + 12 

dazu:

(int(timestamp[:2]) + 12) % 24 

Demonstration:

>>> 12 + 12 
24 
>>> (12 + 12) % 24 
0 
+0

Es gibt 0 und nicht 00 ich glaube. –

+1

0 und 00 sind die gleiche Nummer. Wenn Sie das Ergebnis auf zwei Stellen auffüllen möchten, verwenden Sie eine beliebige Zeichenfolgenformatierung, z. 'str (Stunde) .rjust (2, '0')'. – TigerhawkT3

Verwandte Themen