ValueError时间数据'Fri Mar 11 15:59:57 EST 2016'与格式'%a%b%d%H:%M:%S%Z%Y'不匹配

2024-04-25 16:51:35 发布

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

我正在尝试从以下日期创建日期时间对象:“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。在

^{pr2}$

也许我的格式字符串有明显的错误,但我已经检查了一遍又一遍。任何帮助都将不胜感激,谢谢。在

编辑以反映更多信息的评论/问题:

我使用的Python版本是2.7.6。在

在ubuntu14.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=

Tags: 对象fromimport密码datetime格式时间locale
1条回答
网友
1楼 · 发布于 2024-04-25 16:51:35

对于%Z说明符,strptime只识别“UTC”、“GMT”和time.tzname中的任何内容(因此它是否识别“EST”将取决于计算机的时区)。这是issue 22377。在

参见:

解析包含人类可读时区的时区的最佳选择仍然是使用第三方python-dateutil库:

import dateutil
date = dateutil.parse('Fri Mar 11 15:59:57 EST 2016')

如果不能安装python dateutil,可以去掉时区并手动解析,例如使用字典查找。在

相关问题 更多 >