转换星期五,2016年4月15日20:45:51 +0300与strptime我做错了什么?

时间:2016-04-16 00:00:39

标签: python django date datetime

我有一个格式为Fri, 15 Apr 2016 20:45:51 +0300的Feed日期,我正在尝试将其转换为Django将接受的内容。

使用datetime模块,我试过这个:

date = datetime.strptime(e['published'], "%a, %d %m %Y %H:%M:%S +0000")

错误

ValueError: time data 'Fri, 15 Apr 2016 20:45:51 +0300' does not match format '%a, %d %m %Y %H:%M:%S +0000'

2 个答案:

答案 0 :(得分:3)

根据documentation使用缩写月份的%b说明符和时区的%z说明符:

>>> import datetime
>>> datetime.datetime.strptime('Fri, 15 Apr 2016 20:45:51 +0300', "%a, %d %b %Y %H:%M:%S %z")
datetime.datetime(2016, 4, 15, 20, 45, 51, tzinfo=datetime.timezone(datetime.timedelta(0, 10800)))

答案 1 :(得分:1)

您尝试转换的时间戳的UTC偏移量为+3,而您的模式仅考虑UTC时间。

无论时区如何,都会照顾它

date = datetime.strptime(e['published'], "%a, %d %b %Y %H:%M:%S %z")