python datetime remove minute and second information
我有一个日期时间数组,它包含小时、分钟和秒信息。我想删除分钟和秒信息,并将小时改为下一个小时。
即峰间距
1 2 3 4 | 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) |
我想获得以下信息:
1 2 3 4 5 | 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循环,但如果可能的话,我正在尝试使用一些智能方法。
您可以使用
1 2 | old_date = datetime.datetime(2011, 3, 23, 16, 45) new_date = old_date.replace(minute=0, second=0) + datetime.timedelta(hours=1) |
一种选择是使用来自
1 2 3 4 5 6 7 8 9 10 11 | 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) |