2013-10-01 16 views
8

Tôi muốn thay đổi phút/giờ của thời gian pythonic. Tôi có một chuỗi thời gian start_time = "2013-09-30 14:12:08.024923". Tôi muốn nó chuyển đổi nó thành khu vực ceil của nó, một nửa hoặc toàn thời gian, tức là nếu tôi đặt khoảng thời gian là 15 tôi sẽ nhận được 2013-09-30 14:15:00.0000. Nếu khoảng thời gian là 30, tôi sẽ nhận được 2013-09-30 14:15:00.0000Làm thế nào để thay đổi thời gian trong python?

Làm cách nào để thay đổi?

Đây là những gì tôi đã thử.

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 

Làm cách nào để đạt được điều này?

+0

Đó là lý do tại sao đến SO. : P – PythonEnthusiast

+0

Bạn đang thiếu một số dòng trong mã ví dụ của mình: cụ thể là các dòng nơi bạn bật 'start_time' từ chuỗi thành đối tượng' datetime'. –

+0

Rất tiếc, xin lỗi. Typo. Quên để bao gồm dòng đó. Đã cập nhật. – PythonEnthusiast

Trả lời

13

Bạn có thể làm điều này với replace:

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

Hãy để tôi thử. Cảm ơn. – PythonEnthusiast

+0

Cảm ơn Nó đã hoạt động. – PythonEnthusiast

+0

Tôi đã thử điều này. 'start_time = start_time.replace (phút = ceit_to, giây = 0)'. Điều này mang lại cho tôi '2013-09-30 14: 15: 00.024923'. Làm cách nào để thay thế mili giây bằng '0' – PythonEnthusiast

Các vấn đề liên quan