#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. Преобразование часового пояса зависит от вас, я только что упомянул об этом. Например, если ваш часовой пояс отображения совпадает с часовым поясом настройки ваших проектов, то вам не нужно конвертировать и наоборот.