Python 在datetime对象中添加或更改时间

Python 在datetime对象中添加或更改时间,python,Python,我有多个datetime对象,例如: >>a datetime.datetime(2009, 11, 1, 0, 0) 我希望保持日期不变,并将时间更改为零(时间为三位数): 可能很简单,但我想不出来 编辑: 出于某种原因,秒为零不起作用。没关系,它与1: >>a datetime.datetime(2009, 11, 1, 0, 0) >>b = datetime.datetime.combine(a.date(), datetime.time(0,0,0

我有多个datetime对象,例如:

>>a
datetime.datetime(2009, 11, 1, 0, 0)
我希望保持日期不变,并将时间更改为零(时间为三位数):

可能很简单,但我想不出来

编辑: 出于某种原因,秒为零不起作用。没关系,它与1:

>>a
datetime.datetime(2009, 11, 1, 0, 0)
>>b = datetime.datetime.combine(a.date(), datetime.time(0,0,0))
>>b
datetime.datetime(2009, 11, 1, 0, 0)
>>b = datetime.datetime.combine(a.date(), datetime.time(0,0,1))
>>b
datetime.datetime(2009, 11, 1, 0, 0, 1)

这有点复杂,但您可以使用
组合

b = datetime.datetime.combine(a.date(), datetime.time(0,0,0))
只需使用replace。

datetime.datetime(2009,11,1,0,0)
datetime.datetime(2009,11,1,0,0)
创建相同的datetime对象。有关详细信息,请参阅

如果您有非零小时、分钟或秒,您可以使用
replace
将其设置为零:

dt = datetime.datetime(2009, 11, 1, 3, 15, 49)
dt.replace(hour=0, minute=0, second=0)

我不明白:
datetime.datetime(2009,11,1,0,0)=datetime.datetime(2009,11,1,0,0,0)
数据时间中的两个或三个零不是一样吗?出于某种原因,时间中的最后一个零被忽略了。但是当我及时使用1,1,1时,我得到了所有三个。你能解释一下为什么你关心第三个零吗?我试图从表中创建一个数据帧,但在导入日期时间时,类型更改为Object。另一个日期字段的格式为datetime.datetime(2016,6,21,9,7,38)未更改为Object。所以我想知道为什么
import datetime
date_with_zeros = datetime.datetime(2009, 11, 1, 1, 0, 0).replace(hour=0, minute=0, second=0)
dt = datetime.datetime(2009, 11, 1, 3, 15, 49)
dt.replace(hour=0, minute=0, second=0)