2013-10-01 21 views
8

Ich wollte die Minuten/Stunden pythonischer Zeit ändern. Ich habe eine Reihe von Zeit start_time = "2013-09-30 14:12:08.024923". Ich will es in seine Viertel-, Halb- oder Vollzeit konvertieren, dh wenn ich das Intervall 15 einstelle, sollte ich 2013-09-30 14:15:00.0000 bekommen. Wenn das Intervall 30 ist, sollte ich 2013-09-30 14:15:00.0000Wie ändere ich die Zeit in Python?

bekommen Wie kann ich es ändern?

Hier ist was ich versucht habe.

start_time = "2013-09-30 14:12:08.024923" 
start_time = datetime.datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S.%f") 
interval = 15 
ceil_to = (start_time.minute/interval) *interval + interval 

start_time.minute = interval # throws error saying attribute 'minute' of 'datetime.datetime' objects is not writable 

Wie erreiche ich das?

+0

Das warum kam so zu. : P – PythonEnthusiast

+0

Sie fehlen einige Zeilen in Ihrem Beispielcode: speziell die Zeilen, wo Sie 'start_time' von einem String zu einem' datetime' Objekt machen. –

+0

Hoppla, tut mir leid. Tippfehler. Ich habe vergessen, diese Zeile einzuschließen. Aktualisiert. – PythonEnthusiast

Antwort

13

Sie können dies mit replace:

start_time = start_time.replace(minute=ceil_to, second=0, microsecond=0) 
+0

Lass mich es versuchen. Vielen Dank. – PythonEnthusiast

+0

Danke Es hat funktioniert. – PythonEnthusiast

+0

Ich habe das versucht. 'start_time = start_time.replace (minute = ceit_to, second = 0)'. Das ergab mich '2013-09-30 14: 15: 00.024923'. Wie ersetze ich Millisekunden durch '0' – PythonEnthusiast

Verwandte Themen