我正在尝试将UTC时间转换为普通格式和时区。文档让我扔玩具!!有人可以给我写一个简单的例子。我在python中的代码;
m.startAt = datetime.strptime(r['StartAt'], '%d/%m/%Y %H:%M')
错误
ValueError:时间数据' 2016-10-28T12:42:59.389Z'不符合格式'%d /%m /%Y%H:%M:'
答案 0 :(得分:0)
该错误告诉您问题,格式字符串必须与您提供的日期时间字符串匹配。
例如:
x = datetime.strptime("2016-6-9 08:57", "%Y-%m-%d %H:%M")
注意第二个字符串与第一个字符串的格式匹配。
您的时间字符串如下所示:
2016-10-28T12:42:59.389Z
哪个与您的格式字符串不匹配。
答案 1 :(得分:0)
要使#!/bin/bash
echo -n "Please enter the name of the tar file you wish to create with out extension "
read nam
echo -n "Please enter the path to the directories to tar "
read pathin
echo tar -czvf $nam.tar.gz
excludes=`find $pathin -iname "*.CC" -exec echo "--exclude \'{}\'" \;|xargs`
echo $pathin
echo tar -czvf $nam.tar.gz $excludes $pathin
正常工作,您需要指定格式字符串正确匹配您要解析的字符串。错误表明您没有 - 因此解析失败。有关格式化参数,请参阅strftime()
and strptime()
Behavior。
您收到的字符串会在错误消息中显示:datetime.strptime
('2016-10-28T12:42:59.389Z'
/ Z
/ ISO 8601日期时间字符串)。
匹配字符串为Zulu
,或者在从字符串中删除最终Z后'%Y-%m-%dT%H:%M:%S.%f%z'
。
有点棘手的是字符串中的最后'%Y-%m-%dT%H:%M:%S.%f'
,它可以由Z
解析,但在GAE支持的python版本中可能不支持(在我的2.7.12中它是不支持):
%z
所以我剥离了>>> datetime.strptime('2016-10-28T12:42:59.389', '%Y-%m-%dT%H:%M:%S.%f%z')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/_strptime.py", line 324, in _strptime
(bad_directive, format))
ValueError: 'z' is a bad directive in format '%Y-%m-%dT%H:%M:%S.%f%z'
并使用了其他格式:
Z
要获取字符串,请使用>>> stripped_z = '2016-10-28T12:42:59.389Z'[:-1]
>>> stripped_z
'2016-10-28T12:42:59.389'
>>> that_datetime = datetime.strptime(stripped_z, '%Y-%m-%dT%H:%M:%S.%f')
>>> that_datetime
datetime.datetime(2016, 10, 28, 12, 42, 59, 389000)
:
strftime
如果你想使用时区会更复杂,但我的建议是在后端存储上坚持使用UTC,并为前端/客户端留下时区转换。
您可能希望使用>>> that_datetime.strftime('%d/%m/%Y %H:%M')
'28/10/2016 12:42'
来存储值,在这种情况下您可以直接编写它:
DateTimeProperty