当我预先形成datetime.now()
以获取当前时间时,会打印出来(使用print
),如下所示:
2018-06-14 13:21:02.331933
我想忽略秒和微秒并将其打印出来:
2018-06-14 13:21:00
我知道我可以使用strftime
转换为我选择的字符串,但我不想更改字符串,而是更改datetime
对象本身以使其具有0秒和0毫秒(执行strftime
并立即strptime
转换回来似乎很愚蠢。)
换句话说,从datetime(2018, 6, 14, 14, 7, 27, 326853)
转换为datetime(2018, 6, 14, 14, 7)
我试过这样的事:
now = datetime.now()
now = now - timedelta(seconds=now.second, microseconds=now.microsecond)
这样可行,但我确信这是一种更简单,更有效的方法(在迭代不同文件时我需要做数千次)。所以我的问题是,我是否正确,有一种更简单的方法,如果是这样,你对这种问题的解决方案是什么?
答案 0 :(得分:3)
使用datetime.replace
:
now = datetime.now().replace(second=0, microsecond=0)
答案 1 :(得分:3)
使用datetime.replace()
method创建新实例,并将特定属性设置为所需的值:
now = datetime.now().replace(second=0, microsecond=0)
演示:
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2018, 6, 14, 12, 16, 4, 738362)
>>> datetime.now().replace(second=0, microsecond=0)
datetime.datetime(2018, 6, 14, 12, 16)