python datetime 去除分秒信息

新手上路,请多包涵

我有一个日期时间数组,其中包含小时、分钟和秒信息。我想从中删除分钟和秒信息并将小时更改为下一个小时。

即peak_interval

 array([datetime.datetime(2010, 12, 13, 6, 0),
       datetime.datetime(2011, 1, 12, 7, 0),
       datetime.datetime(2011, 3, 23, 16, 45),
       datetime.datetime(2011, 4, 19, 17, 15)], dtype=object)

我想获得以下内容:

 peak_interval
array([datetime.datetime(2010, 12, 13, 7, 0),
       datetime.datetime(2011, 1, 12, 8, 0),
       datetime.datetime(2011, 3, 23, 17, 0),
       datetime.datetime(2011, 4, 19, 18, 0)], dtype=object)

我可以编写某种 for 循环,但如果可能的话,我会尝试使用一些聪明的方法。

原文由 Zanam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

您可以使用 datetime.datetime.replace

 old_date = datetime.datetime(2011, 3, 23, 16, 45)
new_date = old_date.replace(minute=0, second=0, microsecond=0) + datetime.timedelta(hours=1)

原文由 Kevin M Granger 发布,翻译遵循 CC BY-SA 4.0 许可协议

now = datetime.now()
now2 = datetime(now.year,now.month,now.day,now.hour)

原文由 Marios Staboulas 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题