我的数据格式是:
2019-03-07T11:50:03.161033+01:00
我的脚本:
import datetime
print datetime.datetime.strptime('2019-03-07T11:50:03.161033+01:00', '%Y-%m-%dT%H:%M:%S.%f%Z')
我得到错误代码:
Traceback (most recent call last):
File "test.py", line 2, in <module>
print datetime.datetime.strptime('2019-03-07T11:50:03.161033+01:00', '%Y-%m-%dT%H:%M:%S.%f%Z')
File "/usr/lib/python2.7/_strptime.py", line 332, in _strptime
(data_string, format))
ValueError: time data '2019-03-07T11:50:03.161033+01:00' does not match format '%Y-%m-%dT%H:%M:%S.%f%Z'
如何访问+01:00时间戳部分?
答案 0 :(得分:1)
问题出在您的原始数据格式中。
2019-03-07T11:50:03.161033+01:00
时区部分+01:00
实际上应该是+0100
,请注意缺少完整的冒号。
如果要将原始日期格式更改为正确的日期格式,则datetime.datetime.strptime
将起作用。
s = 2019-03-07T11:50:03.161033+0100
datetime.datetime.strptime(s,'%Y-%m-%dT%H:%M:%S.%f%z')
[out] datetime.datetime(2019, 3, 7, 11, 50, 3, 161033, tzinfo=datetime.timezone(datetime.timedelta(0, 3600)))
您可以按以下方式转换日期格式:
s = r'2019-03-07T11:50:03.161033+01:00'
lastSemiColor = s.rfind(':') # returns index
s = s[:ii] + s[ii+1:]
print(s) # returns '2019-03-07T11:50:03.161033+0100'
这可以在documentation
中找到%z UTC offset in the form ±HHMM[SS[.ffffff]]
答案 1 :(得分:0)
这将起作用:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import datetime
if __name__ == '__main__':
a = "2019-03-07T11:50:03.161033+01:00"
b = datetime.datetime.strptime(a, "%Y-%m-%dT%H:%M:%S.%f%z").strftime("%z")
print(b)
输出:
+0100
答案 2 :(得分:0)
尝试一下
print('TimeStamp is : %d-%d-%d %d:%d:%d' % (
timeObj.tm_mday, timeObj.tm_mon, timeObj.tm_year, timeObj.tm_hour, timeObj.tm_min, timeObj.tm_sec))