2016-05-10 2 views
0

時間データ'2016-04-15T02:19:17 + 00:00 'を出力するjsonを受け取っています。このユニコード文字列の形式を把握しているようです。日付の形式はどのようにして確認できますか?

私は今と今の時間の違いを見つける必要があります。そのための最初のステップは、私はそれが

time data '2016-04-15T02:19:17+00:00' does not match format '"%Y-%m-%d %H:%M:%S %Z' 

答えて

1

は数あります同じ形式ではないことを、例外を得続けるフォーマット

fmt='"%Y-%m-%d %H:%M:%S %Z' 
#fmt='%Y-%m-%d %H:%M:%S.%f' 
print datetime.datetime.strptime(result_json['alert_time'], fmt) 

を見つけることができない構造形式とはIAMに文字列を変換することですあなたのフォーマットに関する問題。まず、二重引用符"が入っています。次に、日付と時刻の間にTを含める必要があります。第三に、タイムゾーンオフセットは標準ではありません。ここで動作するコードは次のとおりです。

print datetime.datetime.strptime('2016-04-15T02:19:17', '%Y-%m-%dT%H:%M:%S') 

あなたalert_timeはGMTに常にある場合は、あなただけのstrptimeを呼び出す前にタイムゾーンを切り落とすことができます。

+0

私は次のことを続けています:変換されていないデータは+00:00です。例外を取り除くための優雅な方法はありますか? – Victor

+0

@Victor: "' strptime'を呼び出す前にタイムゾーンをトリミングしてください。 " –

0

ブレントの答えは、フードの中で物事が進行するよりも、より安全で高速なオプションです。しかし、datetimeは、私が試したかった主な問題と関連していない不満足なボトルネックとなっていました。私はまた、dateparserhereがまだ私に間違っていないと指摘し、入力の巨大な範囲を取るでしょう。

import dateparser 
import datetime 

date = '2016-04-15T02:19:17+00:00' 

date_parser_format = dateparser.parse(date) 
datetime_format = datetime.datetime.strptime('2016-04-15T02:19:17', '%Y-%m-%dT%H:%M:%S') 

print date_parser_format 
print datetime_format 
関連する問題