2013-10-01 17 views
8

Chciałem zmienić minuty/godziny czasu pythonic. Mam ciąg czasu start_time = "2013-09-30 14:12:08.024923". Chcę, aby przekształcił go na swój kwartał, pół lub pełny czas, tzn. Jeśli ustawię przedział jako 15 powinienem otrzymać 2013-09-30 14:15:00.0000. Jeśli interwał to 30, powinienem uzyskać 2013-09-30 14:15:00.0000Jak zmienić czas w python?

Jak mogę to zmienić?

Oto, co próbowałem.

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 

Jak to osiągnąć?

+0

Dlatego przyszedł do SO. : P – PythonEnthusiast

+0

Brakuje niektórych linii w przykładowym kodzie: w szczególności linii, w których zmienisz 'czas_początkowy' z łańcucha na obiekt' datetime'. –

+0

Ups, przepraszam. Typo. Zapomniałem włączyć tę linię. Zaktualizowano. – PythonEnthusiast

Odpowiedz

13

Można to zrobić z replace:

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

Pozwól mi spróbować. Dzięki. – PythonEnthusiast

+0

Dzięki To zadziałało. – PythonEnthusiast

+0

Próbowałem tego. 'start_time = start_time.replace (minute = ceit_to, second = 0)'. To dało mi '2013-09-30 14: 15: 00.024923'. Jak zamienić milisekundy na '0' – PythonEnthusiast

Powiązane problemy