我有以下字符串:
2016-04-29T00:00:00 + 01:00
我想使用Python将其转换为Unix日期时间戳。
我试过将它转换为日期对象:
dt = datetime.datetime.strptime(validated_data.get('scheduled_datetime', None), '%Y-%m-%dT%H:%M:%SZ')
但是我收到以下错误:
time data '2016-04-29T00:00:00+01:00' does not match format '%Y-%m-%dT%H:%M:%S'
答案 0 :(得分:5)
2016-04-29T00:00:00+01:00
不是strptime
可以理解的形式。它支持
%z
UTC偏移量,格式为+ HHMM或-HHMM
但请注意时区中没有冒号:
!
首先从输入中删除冒号:
,然后使用%z
。
答案 1 :(得分:1)
如果要以特定格式返回当前日期,则应使用time.strftime()。
import time
currentDate = time.strftime('%Y-%m-%dTT%H:%M:%SZ')
无需使用datetime使事情复杂化。
注意:您可能需要更改某些格式字符才能获得所需的输出。
答案 2 :(得分:1)
我怀疑strptime支持python 2.7中的%z。您可以升级到python 3版本或使用解析器模块
>>> from dateutil.parser import parse
>>> parse(time_str)
datetime.datetime(2016, 4, 29, 0, 0, tzinfo=tzoffset(None, 3600))