Python时间与正确的格式不匹配

时间:2016-04-21 13:19:13

标签: python

我有以下字符串:

  

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'

3 个答案:

答案 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))