如何从 unicode 字符串创建日期时间对象?

How to create datetime object from a unicode string?

我在从 python 这种格式转换时遇到问题:

u'08:00:00' 

datetime 对象,例如:

datetime.datetime(2017,02,22,8,0,0)

执行此操作的简单方法是什么?

我可以通过解析字符串来完成,但寻找更优雅的解决方案

首先你需要解析时间字符串。您可以手动执行此操作,或使用 datetime.strptime():

from datetime import datetime

s = u'08:00:00'
t = datetime.strptime(s, '%H:%M:%S').time()

strptime() 不关心你给它一个 unicode 字符串。这会给你一个 datetime.time 对象:

>>> t
datetime.time(8, 0)

然后使用datetime.combine()将时间与今天的日期合并:

from datetime import date

dt = datetime.combine(date.today(), t)

这将为您提供所需的 datetime.datetime 对象:

>>> dt
datetime.datetime(2017, 2, 24, 8, 0)