如何在Python中截断DateTime对象上的时间?

2024-03-30 04:02:36 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

如果你不在乎时间,就用date而不是datetime

>>> now = datetime.now()
>>> now.date()
datetime.date(2011, 3, 29)

您可以这样更新日期时间:

>>> now.replace(minute=0, hour=0, second=0, microsecond=0)
datetime.datetime(2011, 3, 29, 0, 0)

四年后:另一种方式,避免replace

我知道四年前接受的答案是有效的,但这似乎比使用replace要轻一点:

dt = datetime.date.today()
dt = datetime.datetime(dt.year, dt.month, dt.day)

注释

  • 创建datetime对象而不向构造函数传递时间属性时,将进入午夜。
  • 正如其他人所指出的,这假设您需要一个datetime对象,以便以后与timedelta一起使用。
  • 当然,你可以用这个代替第一行:dt = datetime.datetime.now()

我想这就是你要找的。。。

>>> import datetime
>>> dt = datetime.datetime.now()
>>> dt = dt.replace(hour=0, minute=0, second=0, microsecond=0) # Returns a copy
>>> dt
datetime.datetime(2011, 3, 29, 0, 0)

但是如果你真的不关心事物的时间方面,那么你应该只传递date对象。。。

>>> d_truncated = datetime.date(dt.year, dt.month, dt.day)
>>> d_truncated
datetime.date(2011, 3, 29)

相关问题 更多 >