2013-10-01 65 views
8

我想改變pythonic時間的分鐘數/小時數。 我有一串時間start_time = "2013-09-30 14:12:08.024923"。我希望它將它轉換爲它的一半四分之一,也就是說,如果我設置的時間間隔爲15我應該得到2013-09-30 14:15:00.0000。如果區間是30,我應該得到2013-09-30 14:15:00.0000如何改變python的時間?

我該如何改變它?

這是我試過的。

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 

我該如何做到這一點?

+0

這就是爲什麼這麼來。 :P – PythonEnthusiast

+0

您在示例代碼中缺少一些行:特別是將'start_time'從字符串轉換爲'datetime'對象的行。 –

+0

抱歉。錯字。忘了包括那一行。更新。 – PythonEnthusiast

回答

13

你可以用replace做到這一點:

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

讓我試試。謝謝。 – PythonEnthusiast

+0

謝謝它的工作。 – PythonEnthusiast

+0

我試過了。 'start_time = start_time.replace(minute = ceit_to,second = 0)'。這讓我覺得'2013-09-30 14:15:00.024923'。我如何用'0'替換毫秒數 – PythonEnthusiast