python datetime删除分钟和秒信息

时间:2016-07-13 18:45:20

标签: 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循环,但我想尽可能使用一些智能方法。

3 个答案:

答案 0 :(得分:11)

您可以使用datetime.datetime.replace

轻松修改几个字段
old_date = datetime.datetime(2011, 3, 23, 16, 45)
new_date = old_date.replace(minute=0, second=0) + datetime.timedelta(hours=1)

答案 1 :(得分:3)

一种选择是使用timedelta中的datetime

import datetime
import numpy as np
def reset(dt):
    return dt + datetime.timedelta(hours = 1, minutes = -dt.minute, seconds = -dt.second)

np.vectorize(reset)(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)

答案 2 :(得分:0)

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