格式化datetim时未检测到时区

2024-09-29 21:49:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下格式的字符串: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)

但它导致了这个错误:

^{pr2}$

所以,我试图删除(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

Tags: 字符串time格式错误startfebstandardgmt
1条回答
网友
1楼 · 发布于 2024-09-29 21:49:24

如果将正则表达式更改为:

start=re.sub(r'(\+.*)|(\-.*)$', '', startTime)

它将工作,因为您也可以剥离时区差异信息(+或-),这应该对您来说是可以的,因为您无论如何都要丢弃%Z数据。在

您应该可以使用%z来获得+0330时差,但它不适用于我的Python版本,可能是因为一个bug。对于python3.2似乎已经解决了,请参见http://bugs.python.org/issue6641

相关问题 更多 >

    热门问题