Django时间转换格式
我正在尝试使用以下代码将时间转换为特定格式:Django时间转换格式,django,python-3.x,Django,Python 3.x,我正在尝试使用以下代码将时间转换为特定格式: 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') 但我得到了以下错误
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'
有人能建议我如何转换成特定的格式吗。谢谢 Django有一个内置的日期解析器,它抽象了strftime的逻辑。您只需传入一个日期字符串,它将返回一个
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)
如果您试图将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.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)