2016-09-04 3 views
1

Тока дата и время передается через запрос АЯКСА к Джанго бэкэнда, где он будет храниться в базе данных. Для того, чтобы сохранить его в базе данных, дата первая должна быть преобразована в datetime объект, который может быть сделан для даты составления в формате UTC (. Например, Sun, 04 Sep 2016 07:13:06 GMT) легко следующее утверждение:Javascript дата строка питон дата и время объект

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

Однако в таком метод не сохраняет часовой пояс пользователя.

Код JavaScript Date вызов конструктора т.е. new Date() возвращает дату в следующем формате:

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

, который дает ошибку при преобразовании в объект даты и времени.

>>> 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

Вы можете использовать dateutil модуль питона разобрать дату.

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

Это дает выход в виде даты и времени объекта:

datetime.datetime(2016, 9, 4, 7, 13, 6, tzinfo=tzoffset(u'IST', -19800)) 
Смежные вопросы