我已编写此代码以将异常时间转换为EPOCH:
x = 'Mon Jul 25 19:04:30 GMT+01:00 2016'
print(datetime.strptime(x, '%a %b %d %H:%M:%S %Z%z %Y').strftime('%s'))
但是,它会返回错误ValueError: time data 'Mon Jul 25 19:04:30 GMT+01:00 2016' does not match format '%a %b %d %H:%M:%S %Z%z %Y'
问题与时区有关。我做错了什么?
答案 0 :(得分:3)
您的时区格式中有一个额外的:
会导致格式不匹配错误,您可以先从字符串中删除最后一个:
,然后再解析它:
import re
from datetime import datetime
x1 = re.sub(r":(?=[^:]+$)", "", x) # remove the last semi colon
datetime.strptime(x1, '%a %b %d %H:%M:%S %Z%z %Y').strftime('%s')
# '1469487870'
答案 1 :(得分:2)
如果使用dateutil而不是datetime.strptime,它似乎可以工作:
from dateutil import parser
parser.parse("Mon Jul 25 19:04:30 GMT+01:00 2016")
>> datetime.datetime(2016, 7, 25, 19, 4, 30, tzinfo=tzoffset(None, -3600))