我正在尝试获取当前日期时间并将时间设置为00:00:00
。
要做到这一点,我打电话给:
current_date = dt.datetime.now()
current_date.replace(hour=0, minute=0, second=0)
print(current_date)
输出结果为:
2017-08-20 10:43:56.3243245
这不是我的期望。但是,如果我这样做:
current_date = dt.datetime(dt.datetime.now().date().year,dt.datetime.now().date().month,dt.datetime.now().date().day,0,0,0)
一切都如我所料,我得到了结果:
2017-08-20 00:00:00
这是为什么?到底是怎么回事??为什么replace
不起作用?
答案 0 :(得分:1)
replace
会返回一个新的datetime
实例,因此您应该执行以下操作:
>>> current_date = dt.datetime.now()
>>> current_date = current_date.replace(hour=0, minute=0, second=0, microsecond=0)
>>> print(current_date)
2017-08-20 00:00:00
您还应该替换microsecond=0
,以使其完全00:00:00
。
答案 1 :(得分:0)
replace方法总是在替换后返回一个新值,因此您需要存储该值。
current_date = dt.datetime.now()
current_date = current_date.replace(hour=0, minute=0, second=0)
print(current_date)