如何在Python中修改datetime.datetime.hour?

时间:2016-03-18 02:38:29

标签: python datetime

我想计算从现在到明天12:00之间的秒数。所以我需要明天12点datetime对象。

这是伪代码:

today_time = datetime.datetime.now()
tomorrow = today_time + datetime.timedelta(days = 1)
tomorrow.hour = 12
result = (tomorrow-today_time).total_seconds()

但它会引发这个错误:

AttributeError: attribute 'hour' of 'datetime.datetime' objects is not writable

如何修改小时或如何获得明天的12:00 datetime对象?

2 个答案:

答案 0 :(得分:55)

使用replace method根据您现有的对象生成新的datetime对象:

tomorrow = tomorrow.replace(hour=12)
  

返回具有相同属性的日期时间,但通过指定的任何关键字参数给定新值的属性除外。请注意,可以指定tzinfo=None从感知日期时间创建天真的日期时间,而不转换日期和时间数据。

答案 1 :(得分:3)

试试这个:

tomorrow = datetime.datetime(tomorrow.year, tomorrow.month, tomorrow.day, 12, 0, 0)