2016-07-04 7 views
5

単にdatetimeを作成しようとしていますオブジェクトを次の日付から削除します: '%03%11月19日15:59:57 EST 2016' '%a%b%d%H:%M:%S%Z%Y'ValueError時間データ '金3月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' 

は、たぶん私は私のフォーマット文字列で、明らかに間違って何かが足りないのですが、私は何度も繰り返し、それをチェックしました。どんな助けでも大変感謝します。

編集の詳細についてのコメント/質問を反映する:

私が使用しているPythonのバージョンは2.7.6です。私はこの取得のUbuntu 14.04に 'ロケール' コマンドを使用して

:%のZ指定子については

$ 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= 
+2

私はあなたのコードを試してみました。どのバージョンのPythonを使用していますか? –

+0

私はPython 2.7.6を使用しています –

+0

英語以外のロケール設定を使用するコンピュータを使用していますか? –

答えて

8

を、strptimeは唯一の "UTC" を認識し、 "GMT" と何でも(それが認識するかどうかようtime.tznameであります「EST」はお使いのコンピュータのタイムゾーンによって異なります)。これはissue 22377です。

を参照してください:あなたのpythonをインストールすることができない場合

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

Python strptime() and timezones?Parsing date/time string with timezone abbreviated name in Python?

は、人間が読み取り可能な時間帯が含まれるタイムゾーンを解析するための最良のオプションは、サードパーティpython-dateutilライブラリを使用することはまだあります-dateutil、タイムゾーンを取り除いて手動で解析することができます。辞書ルックアップを使用します。

+0

問題はここでも発生します。確かに問題は 'EST'部分文字列だったと思って、問題を確認しました。この場合、これらの文字列を解析してこの問題を回避する安全な方法はありますか? –

+1

@JeandersonBarrosCândidopython-dateutilを使用することをお勧めします。私はそれを追加するために私の答えを更新しました、ありがとう。 – ecatmur

+0

それはそれでした。ありがとう! –

関連する問題