在 Python 中将日期转换为日期时间

新手上路,请多包涵

是否有内置方法将 date 转换为 datetime 在 Python 中,例如获取 datetime 给定日期的午夜?相反的转换很容易: datetime 有一个 .date() 方法。

我真的必须手动调用 datetime(d.year, d.month, d.day) 吗?

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

阅读 260
2 个回答

您可以使用 datetime.combine(date, time) ;目前,您创建了一个初始化为午夜的 datetime.time 对象。

 from datetime import date
from datetime import datetime

dt = datetime.combine(date.today(), datetime.min.time())

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

有几种方法,尽管我确实相信您提到(并且不喜欢)的一种是最易读的一种。

 >>> import datetime
>>> t=datetime.date.today()
>>> datetime.datetime.fromordinal(t.toordinal())
datetime.datetime(2009, 12, 20, 0, 0)

>>> datetime.datetime(t.year, t.month, t.day)
datetime.datetime(2009, 12, 20, 0, 0)

>>> datetime.datetime(*t.timetuple()[:-4])
datetime.datetime(2009, 12, 20, 0, 0)

等等——但基本上它们都依赖于从 date 对象中适当地提取信息,并将其返回到 datetime 的合适的 ctor 或类函数中。

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

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