2015-05-18 3 views
0

я это в моих настройках файлКак получить правильный DateTime в Джанго для часового пояса

USE_TZ = True

Теперь мой часовой пояс является Europe/Paris

Теперь я спасая DateTime в Джанго, как этот

obj.start_date = datetime.strptime('Apr 27 2015 9:00AM', '%b %d %Y %I:%M%p')

Я знаю, что в databse django сохраняет utc-формат. В БД его как

2015-04-26 23:00:00+00

Моя проблема заключается сделать расчет на основе даты

Я вошел дату 27 April но в Databse он получает хранится в виде 26 April

когда я делать obj.start_date.date() тогда я получаю 26 Апрель, вместо этого я хочу 27 апреля

также время также приходит как разное.

Мои расчеты все не так.

Какой команду мне нужно использовать, чтобы получить правильную дату и время

ответ

0

Взгляни на Django Timezone, он использует известно DateTime объекты вместо наивного (при использовании библиотеки DateTime). В документах есть много примеров того, как использовать часовые пояса для преобразования в часовой пояс, который вы хотите в обоих представлениях и шаблонах.

Также ознакомьтесь с библиотекой pytz, которую Django рекомендует вам установить.

+0

Спасибо за то, что я прочитал это много раз, но не мог понять полностью. Не могли бы вы показать мне, как будет выглядеть мой код, если я должен сделать эту работу – user3214546

0

Проблема заключается в том, что при создании объекта datetime вы не предоставляете никакой информации о его часовом поясе. Поэтому он создается как наивное datetime, что приводит к неправильному хранению.

Попробуйте это:

from pytz import timezone 
from datetime import datetime 

tz_france = timezone('Europe/Paris') 
loc_dt = tz_france.localize(datetime.strptime('Apr 27 2015 9:00AM', '%b %d %Y %I:%M%p')) 

Это должно дать вам локализованный объект типа DateTime, который может быть правильно преобразованного в UTC Джанго и сохранен в базе данных. Пример исходит от http://pytz.sourceforge.net/

+0

, используя 'is_dst = None', чтобы создать исключение для неоднозначных или несуществующих моментов времени, как показано в [django docs] (https: //docs.djangoproject. ком/о/1,8/темы/i18n/часовые пояса/# использование) – jfs

Смежные вопросы