如何在Python中修改时间?

26

我想改变 Python 时间的分钟/小时。我有一个时间字符串 start_time = "2013-09-30 14:12:08.024923",我希望将其转换为所需的上限刻度、中间刻度或完整刻度的时间,例如如果我设定时间间隔为15,则应该得到2013-09-30 14:15:00.0000。如果间隔是30,我应该得到2013-09-30 14:30:00.0000

我该如何更改它?

这是我的尝试:

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

我该如何实现这个目标?


这就是为什么来到SO的原因。 :P - Praful Bagai
你的示例代码缺少一些行,具体来说是将start_time从字符串转换为datetime对象的行。 - David Robinson
抱歉,打错了。忘记加上那行代码了。已更新。 - Praful Bagai
@mgilson:我猜问题在于无法更改start_time.minute字段。 - David Robinson
@DavidRobinson -- 我明白了 -- 但这对我来说真的无所谓 :)。 - mgilson
显示剩余4条评论
1个回答

41
你可以使用replace来完成这个操作:
start_time = start_time.replace(minute=ceil_to, second=0, microsecond=0)

我尝试了这个:start_time = start_time.replace(minute=ceit_to,second = 0 )。这给了我 2013-09-30 14:15:00.024923。我该如何将毫秒替换为 0 - Praful Bagai
3
@user1162512,.replace(minute=ceil_to, second=0, microsecond=0) - falsetru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接