如何截断日期时间对象上的时间?

新手上路,请多包涵

截断 python datetime 对象的经典方法是什么?

在这种特殊情况下,直到今天。所以基本上将小时、分钟、秒和微秒设置为 0。

我希望输出也是 datetime 对象,而不是字符串。

原文由 Kyle Brandt 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 384
2 个回答

我想这就是你要找的……

 >>> 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)

原文由 Chris W. 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您不关心时间,请使用 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)

原文由 Jochen Ritzel 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题