我需要将python对象datetime.time
转换为箭头对象。
y = datetime.time()
>>> y
datetime.time(0, 0)
>>> arrow.get(y)
TypeError: Can't parse single argument type of '<type 'datetime.time'>'
Arrow遵循其文档中指定的特定格式:
arrow.get('2013-05-11T21:23:58.970460+00:00')
您需要将datetime对象转换为箭头可理解的格式,以便能够将其转换为箭头对象。下面的代码块应该可以工作:
from datetime import datetime
import arrow
arrow.get(datetime.now())
一个datetime.time
对象保存"一个理想的时间,独立于任何特定的日子"。箭头对象不能表示这类部分信息,因此您必须首先用今天的日期或其他日期"填写"它。
from datetime import time, date, datetime
t = time(12, 34)
a = arrow.get(datetime.combine(date.today(), t)) # <Arrow [2019-11-14T12:34:00+00:00]>
a = arrow.get(datetime.combine(date(1970, 1, 1), t)) # <Arrow [1970-01-01T12:34:00+00:00]>
您可以使用arrow.Arrow
类的strptime
类方法,并应用适当的格式化:
y = datetime.time()
print(arrow.Arrow.strptime(y.isoformat(), '%H:%M:%S'))
# 1900-01-01T00:00:00+00:00
但是,您会注意到日期值是默认的,因此您可能最好解析datetime
对象而不是time
对象。