在 datetime python 中删除秒

现在给我

datetime.datetime(2010, 7, 6, 5, 27, 23, 662390)

如何获得 datetime.datetime(2010, 7, 6, 5, 27, 0, 0)(日期时间对象) ,其中分钟后的所有内容都为零?

77972 次浏览

您可以使用 datetime.replace获取新的 datetime 对象,而不需要秒和微秒:

the_time = datetime.now()
the_time = the_time.replace(second=0, microsecond=0)

我知道这是个很老的问题,但是到目前为止我还没有找到任何真正完整的答案。

没有必要先创建一个 datetime 对象,然后再对其进行操作。

dt = datetime.now().replace(second=0, microsecond=0)

将返回所需的对象

有人说 Python 可能很快就会添加纳秒,如果是这样的话,其他答案中提到的 replace(microsecond=0)方法可能会崩溃。

因此,我要这么做

datetime.fromisoformat( datetime.now().isoformat(timespec='minutes') )

也许通过字符串表示有点愚蠢和昂贵,但它给了我一个心灵的平静。

dt = datetime.datetime(2010, 7, 6, 5, 27, 23, 662390)
dt = f'{dt.date().__str__()} {dt.time().__str__()[:5]}'