我正在尝试使用以下代码将时间转换为特定格式:
datetime.datetime.strptime(timezone.now() + timedelta(days=14), '%Y-%m-%dT%H:%M:%S.%f%z')
我收到的错误是第一个参数必须是字符串。
我也尝试过使用此代码
datetime.datetime.strptime(str(timezone.now() + timedelta(days=14)), '%Y-%m-%dT%H:%M:%S.%f%z')
但后来我遇到了以下错误:
time data '2017-06-04 14:26:18.941458+00:00' does not match format '%Y-%m-%dT%H:%M:%S.%f%z'
有人可以建议我如何转换为特定格式。谢谢!
答案 0 :(得分:1)
Django有一个内置日期解析器,它抽象出strftime
远离parse_datetime的逻辑。您只需传入一个日期字符串,它就会返回一个datetime.datetime
对象。以下是您的代码的样子:
from django.utils.dateparse import parse_datetime
parse_datetime(str(timezone.now() + timedelta(days=14)))
>>> datetime.datetime(2017, 6, 4, 7, 45, 28, 301957)
答案 1 :(得分:1)
如果您尝试将datetime.datetime()对象转换为字符串,则可以执行此操作,
>>> datetime.datetime.strftime(timezone.now() + timedelta(days=14), '%Y-%m-%dT%H:%M:%S.%f%z')
'2017-06-04T14:45:23.621658+0000'
或者如果您想将它作为日期时间对象,
>>> datetime.datetime.strptime(str(timezone.now() + timedelta(days=14))[:26], '%Y-%m-%d %H:%M:%S.%f')
datetime.datetime(2017, 6, 4, 14, 50, 26, 5649)