ValueError 时间数据 'Fri Mar 11 15:59:57 EST 2016' 与格式“%a %b %d %H:%M:%S %Z %Y”不匹配
ValueError time data 'Fri Mar 11 15:59:57 EST 2016' does not match format '%a %b %d %H:%M:%S %Z %Y'
我试图从以下日期简单地创建一个日期时间对象:'Fri Mar 11 15:59:57 EST 2016' 使用格式:'%a %b %d %H:%M:%S %Z %Y'。
这是代码。
from datetime import datetime
date = datetime.strptime('Fri Mar 11 15:59:57 EST 2016', '%a %b %d %H:%M:%S %Z %Y')
但是,这会导致如下所示的 ValueError。
ValueError: time data 'Fri Mar 11 15:59:57 EST 2016' does not match format '%a %b %d %H:%M:%S %Z %Y'
也许我的格式字符串遗漏了一些明显的错误,但我已经反复检查过了。非常感谢任何帮助,谢谢。
编辑以反映 comments/questions 以获取更多信息:
我使用的 Python 版本是 2.7.6。
在 Ubuntu 14.04 上使用 'locale' 命令我得到这个:
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
对于 %Z 说明符,strptime
仅识别 "UTC"、"GMT" 以及 time.tzname
中的任何内容(因此它是否识别 "EST" 将取决于在您计算机的时区上)。这是issue 22377。
参见:
Python strptime() and timezones?
Parsing date/time string with timezone abbreviated name in Python?
解析包含人类可读时区的时区的最佳选择仍然是使用第三方 python-dateutil 库:
import dateutil
date = dateutil.parse('Fri Mar 11 15:59:57 EST 2016')
如果您无法安装 python-dateutil,您可以删除时区并手动解析它,例如使用字典查找。
我试图从以下日期简单地创建一个日期时间对象:'Fri Mar 11 15:59:57 EST 2016' 使用格式:'%a %b %d %H:%M:%S %Z %Y'。
这是代码。
from datetime import datetime
date = datetime.strptime('Fri Mar 11 15:59:57 EST 2016', '%a %b %d %H:%M:%S %Z %Y')
但是,这会导致如下所示的 ValueError。
ValueError: time data 'Fri Mar 11 15:59:57 EST 2016' does not match format '%a %b %d %H:%M:%S %Z %Y'
也许我的格式字符串遗漏了一些明显的错误,但我已经反复检查过了。非常感谢任何帮助,谢谢。
编辑以反映 comments/questions 以获取更多信息:
我使用的 Python 版本是 2.7.6。
在 Ubuntu 14.04 上使用 'locale' 命令我得到这个:
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
对于 %Z 说明符,strptime
仅识别 "UTC"、"GMT" 以及 time.tzname
中的任何内容(因此它是否识别 "EST" 将取决于在您计算机的时区上)。这是issue 22377。
参见:
Python strptime() and timezones?
Parsing date/time string with timezone abbreviated name in Python?
解析包含人类可读时区的时区的最佳选择仍然是使用第三方 python-dateutil 库:
import dateutil
date = dateutil.parse('Fri Mar 11 15:59:57 EST 2016')
如果您无法安装 python-dateutil,您可以删除时区并手动解析它,例如使用字典查找。