Jon*_*eed 5 python datetime strptime
我试图从以下日期创建一个日期时间对象:'Fri Mar 11 15:59:57 2016 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')
Run Code Online (Sandbox Code Playgroud)
但是,这会导致ValueError,如下所示.
ValueError: time data 'Fri Mar 11 15:59:57 EST 2016' does not match format '%a %b %d %H:%M:%S %Z %Y'
Run Code Online (Sandbox Code Playgroud)
也许我错过了我的格式字符串明显错误的东西,但我一遍又一遍地检查它.非常感谢任何帮助,谢谢.
编辑以反映评论/问题以获取更多信息:
我正在使用的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=
Run Code Online (Sandbox Code Playgroud)
eca*_*mur 11
对于%Z说明符,strptime
仅识别"UTC","GMT"以及其中的任何内容time.tzname
(因此,它是否识别"EST"将取决于您的计算机的时区).这是问题22377.
请参阅:Python strptime()和时区?并在Python中解析带有timezone缩写名称的日期/时间字符串?
解析包含人类可读时区的时区的最佳选择仍然是使用第三方python-dateutil库:
import dateutil
date = dateutil.parse('Fri Mar 11 15:59:57 EST 2016')
Run Code Online (Sandbox Code Playgroud)
如果你不能安装python-dateutil,你可以去除时区并手动解析它,例如使用字典查找.