2016-09-04 8 views
1

現在の日時はajaxリクエストからdjangoバックエンドに渡され、データベースに格納されます。このようにしかしJavaScript日付文字列からpython datetimeオブジェクトへ

>>> from datetime import datetime 
>>> datetime.strptime("Sun, 04 Sep 2016 07:13:06 GMT", "%a, %d %b %Y %H:%M:%S %Z") 

:データベースに格納し、日付はまず、次のステートメントによって容易にUTC形式(例:Sun, 04 Sep 2016 07:13:06 GMT)の日付を行うことができるdatetimeオブジェクトに変換されなければなりません方法、ユーザーのタイムゾーンの保存はありません。 DateTimeオブジェクトに変換するときにエラーを与え

Sun Sep 04 2016 12:38:43 GMT+0530 (IST) 

ジャバスクリプトDateコンストラクタは、次の形式の日付を返しnew Date()すなわち呼び出します。

>>> datetime.strptime("Sun, 04 Sep 2016 07:13:06 GMT+0530 (IST)", "%a, %d %b %Y %H:%M:%S %Z") 

ValueError: time data 'Sun Sep 04 2016 12:46:07 GMT+0530 (IST)' does not match format '%a, %d %b %Y %H:%M:%S %Z' 

1)この問題を解決するにはどうすればよいですか? 2)それにアプローチする方法はありますか?

答えて

0

最初の問題は、入力が異なる形式であることです。しかし、不幸なことに、それはあなたの唯一の問題ではなく、それを修正してもうまくいかないでしょう。

真実であっても最初の形式が異なるタイムゾーンで失敗だろうということです。

datetime.strptime("Sun, 04 Sep 2016 07:13:06 IST", "%a, %d %b %Y %H:%M:%S %Z") 

はで失敗します。

ValueError: time data 'Sun, 04 Sep 2016 07:13:06 IST' does not match format '%a, %d %b %Y %H:%M:%S %Z' 

strptimeだけでタイムゾーンを処理するために十分ではありません。

チェックあなたのオプションについては、これらの答え:

3

は、あなたがあなたの日付を解析するためのpythonのdateutilモジュールを使用することができます。

from dateutil import parser 
parser.parse("Sun, 04 Sep 2016 07:13:06 GMT+0530 (IST)") 

それはdatetimeオブジェクトとして出力を与える:

datetime.datetime(2016, 9, 4, 7, 13, 6, tzinfo=tzoffset(u'IST', -19800)) 
関連する問題