我有一个这种格式的字符串:Mon Feb 27 2012 13:15:00 GMT+0330 (Iraq Standard Time)
,我要将其转换为以下格式:2012-02-27T13:15:00.000
,我已经这样做了:
startTime=`Mon Feb 27 2012 13:15:00 GMT+0330 (Iraq Standard Time)`
strp_time = time.strptime(startTime, '%a %b %d %Y %H:%M:%S %Z')
start = time.strftime('%Y-%m-%dT%H:%M:%S',strp_time)
但它导致了这个错误:
unconverted data remains: +0330 (Iraq Standard Time)
所以,我尝试删除(Iraq Standard Time)
:
start=re.sub(r' \(.+?\)$', '', startTime)
strp_time = time.strptime(start, '%a %b %d %Y %H:%M:%S %Z')
start = time.strftime('%Y-%m-%dT%H:%M:%S',strp_time)
但是,我收到了这个错误:
unconverted data remains: +0330
答案 0 :(得分:1)
如果您将正则表达式更改为:
start=re.sub(r'(\+.*)|(\-.*)$', '', startTime)
它可以工作,因为你也可以去除时区差异信息(+或 - ),这对你来说没问题,因为你无论如何都要丢弃%Z数据。
您应该可以使用%z来获得+0330的时差,但它不适用于我的Python版本,可能是由于一个错误。对于Python 3.2来说似乎已经解决了,请参阅http://bugs.python.org/issue6641