Джанго показал мне неправильную дату из-за часового пояса

#python #html #django #django-models #utc

Вопрос:

У меня есть модель в django, которая хранит поля даты и времени:

 class Trip(models.Model):
    departureDate=models.DateTimeField()
    arrivalDate=models.DateTimeField()
    duration=models.IntegerField() #in seconds
    price=models.FloatField()

 

Я представил эту дату и время: 2021-05-18 12:29:00 02:00 2021-05-18 13:19:00 02:00.
Когда я показываю его на экране, я вижу час и минуту 11:19.

У меня есть это в настройках:

 LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True
 

Мне нужно показать час и минуту 13:19, но я не хочу ставить UTC=False.

Спасибо.

Ответ №1:

Есть два DateTime поля, вам нужно показать правильное поле.

И если вам нужно преобразовать время в другой часовой пояс, вы можете использовать datetime.astimezone() метод с pytz объектом.

Комментарии:

1. Это не имеет значения в поле. Это происходит с обоими.

2. Обязательно ли преобразовывать поле даты и времени в часовой пояс 0, чтобы получить мою цель ?

3. Во-первых, ваш вопрос не так ясен, вы сказали, что представили его два раза выше. одно есть 2021-05-18 12:29:00 02:00 , а другое есть 2021-05-18 13:19:00 02:00 . Так что в идеале первое должно показывать 12:29 и другое 13:19 . Если этого не произойдет, то вы, возможно, неправильно установили время. Я бы рекомендовал вам пересмотреть логику вашего кода или отредактировать ваш вопрос и предоставить более подробную информацию вместе с необходимым кодом.

4. Преобразование часового пояса зависит от вас, я только что упомянул об этом. Например, если ваш часовой пояс отображения совпадает с часовым поясом настройки ваших проектов, то вам не нужно конвертировать и наоборот.