Я работаю на сайте, основанном на Django. Я пытаюсь получить правильный часовой пояс и время для отображения. Но он работает неправильно. Я живу в Далласе, штат Техас. Поэтому мой часовой пояс по умолчанию - «Америка/Чикаго».Часовой пояс Python-Django работает некорректно
В файле settings.py содержатся следующие строки кода.
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
У меня есть дата и время установки. Поэтому, когда я пытаюсь сэкономить время в базе данных, мои коды,
from datetime import datetime
import pytz
utc = pytz.utc
database = Database.objects.get(id=1)
databas.time = utc.localize(datetime.now())
database.save()
поэтому, когда я проверить в базе данных, обновляется время 2015-10-20 23:13:04
вместо 2015-10-20 18:13:04
и когда я распечатать его в шаблоне по кодам ниже, я получаю этот выход Oct. 20, 2015, 1:13 p.m.
{{ database.time|localtime }}
Я смущен, как использовать DateTime, pytz и чтобы получить точное время вместе с файлом settings.py.
Что я хочу сделать, это сохранить время UTC. Но когда я распечатываю, я хочу получить часовой пояс посетителя и время печати в соответствии с пользователем. На данный момент мой сайт будет доступен только в Соединенных Штатах. Моя модель имеет
time = models.DateTimeField(auto_now_add=True)
и это экономит некоторое время. У меня есть другая модель, в которой у меня есть столбец с именем истекает время, когда я использую следующие коды для сохранения,
expire_time = utc.localize(datetime.now()+ timedelta(hours=24))
означает, что я хочу, чтобы истечь связь после 24 часов. Но этот часовой пояс меня смущает. Может кто-нибудь мне помочь? Я не знаю, что я должен использовать в своих кодах, чтобы получить правильный часовой пояс.
Так что должны мои settings.py коды? Правильны ли они? И, как я уже сказал, 'models.DateTimeField (auto_now_add = True)' не сохраняет время UTC. Я не знаю почему. –
Да, ваши настройки выглядят хорошо. Можете ли вы отправить значение своего поля «время» после создания нового экземпляра? –
Нет кода для времени. Я не сохраняю время по умолчанию. Я обновляю время истечения срока действия. –