2013-10-01 8 views
8

Volevo cambiare i minuti/ore del tempo pythonic. Ho una stringa di tempo start_time = "2013-09-30 14:12:08.024923". Voglio convertirlo al suo ceil quater, a metà o a tempo pieno, cioè se imposto intervallo come 15 dovrei ottenere 2013-09-30 14:15:00.0000. Se l'intervallo è 30, dovrei ottenere 2013-09-30 14:15:00.0000Come modificare l'ora in python?

Come posso cambiarlo?

Ecco cosa ho provato.

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 

Come ottengo questo?

+0

è per questo che è venuto a SO. : P – PythonEnthusiast

+0

Nel codice di esempio mancano alcune linee: in particolare le linee in cui si trasforma 'start_time' da una stringa a un oggetto' datetime'. –

+0

Oops sorry. Errore di battitura. Ho dimenticato di includere quella linea. Aggiornato. – PythonEnthusiast

risposta

13

Si può fare questo con replace:

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

Lasciami provare. Grazie. – PythonEnthusiast

+0

Grazie Ha funzionato. – PythonEnthusiast

+0

Ho provato questo. 'start_time = start_time.replace (minute = ceit_to, second = 0)'. Questo mi ha dato '2013-09-30 14: 15: 00.024923'. Come sostituire i millisecondi con '0' – PythonEnthusiast

Problemi correlati