1

我在 Python 中有以下字符串 - 'Oct 01 2013 07 30 PM EST'。我正在尝试转换为 datetime 对象,但出现以下错误:

ValueError: time data 'Oct 01 2013 07 30 PM EST' does not match format
'%b %d %Y %I %M %p %Z'

不知道我哪里错了!请帮忙。我的代码如下:

from datetime import datetime
date_object = datetime.strptime(str(date), '%b %d %Y %I %M %p %Z')
4

2 回答 2

3

Python strptime 是平台相关的:

http://docs.python.org/2/library/time.html#time.strptime

对 %Z 指令的支持基于 tzname 中包含的值以及日光是否为真。因此,它是特定于平台的,除了识别始终已知的 UTC 和 GMT(并且被认为是非夏令时时区)。

例如,在我的工具包(OSX 10.8.5,python 2.7.2)上,datetime.now().strftime("%Z")是一个空字符串。

有像http://pytz.sourceforge.net/这样的外部库来帮助处理时区

于 2013-09-22T19:51:43.530 回答
1

有两个 EST,导致混淆:http ://en.wikipedia.org/wiki/List_of_time_zone_abbreviations

Eastern Standard Time (North America)   UTC-05
Eastern Standard Time (Australia)       UTC+10
于 2013-09-22T19:54:36.960 回答