【发布时间】:2016-11-06 11:45:30
【问题描述】:
我试图从以下日期简单地创建一个日期时间对象:'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'
也许我的格式字符串遗漏了一些明显错误的地方,但我已经一遍又一遍地检查它。任何帮助将不胜感激,谢谢。
编辑以反映 cmets/问题以获取更多信息:
我使用的 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=
【问题讨论】:
-
我试过你的代码,它对我有用;你用的是什么版本的 Python?
-
我使用的是 Python 2.7.6
-
您是否有机会使用使用非英语语言环境设置的计算机?
-
这是“locale”命令的输出。顺便说一下,这是在亚马逊 AWS 上的 ubuntu 14.04 上。 $ 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=
-
简而言之,回答你的问题,没有。似乎语言环境都设置为 en_US