设置datetime.now()

时间:2017-08-20 10:50:11

标签: python python-3.x

我正在尝试获取当前日期时间并将时间设置为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不起作用?

2 个答案:

答案 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方法总是在替换后返回一个新值,因此您需要存储该值。

记住它在替换

后返回一个新值 像你的情况一样。 它返回一个新的datetime实例,所以你应该这样做:

current_date = dt.datetime.now()
current_date = current_date.replace(hour=0, minute=0, second=0)
print(current_date)