Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django时间转换格式_Django_Python 3.x - Fatal编程技术网

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)