Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как правильно работать со временем из разных часовых поясов. [RSS Feed]

#1 Дек. 13, 2017 21:10:29

ivn
Зарегистрирован: 2017-01-13
Сообщения: 91
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.

Добрый день.
Подскажите, как обычно надо отрабатывать временные зоны.
Например, если у меня есть валидатор, который сверяет текущее время на сервере где запущен django со временем клиента (т.е. запрещать размещать посты после 22:00, в то время как на сервер 22:01, а у клиента 20:00 по его времени).
И еще к примеру регистрировать время добавления комментария пользователем и выводить его для разных регионов.
Спасибо.

Офлайн

#2 Дек. 13, 2017 23:59:25

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.

Есть общее правило - на сервере работать только с UTC. Т.е. хранить на сервере uCа с клиентом работать в локальнои времени



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Дек. 14, 2017 10:48:23

ivn
Зарегистрирован: 2017-01-13
Сообщения: 91
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.

JOHN_16
uCа
а что это?
возвращать клиенту в каком виде? например
где то пишут, что лучше всего хранить в unix времени?!

Офлайн

#4 Дек. 14, 2017 11:36:32

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.

ivn
Хранить в БД? Так БД сама разберется, как именно ей хранить время.



Офлайн

#5 Дек. 14, 2017 14:03:12

ivn
Зарегистрирован: 2017-01-13
Сообщения: 91
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.

Время храним в UTC, тут ясно
Если джанго рендерит шаблон для клиента, как ему (джанго) понять для какой зоны нужно вернуть время и как?

Офлайн

#6 Дек. 14, 2017 18:36:07

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.

ivn
понять для какой зоны нужно вернуть время и как?
https://docs.djangoproject.com/en/1.11/ref/utils/#django.utils.timezone.activate

просто активируйте нужную таймзону



Офлайн

#7 Дек. 14, 2017 19:53:05

ivn
Зарегистрирован: 2017-01-13
Сообщения: 91
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.

если например вот так:

 timezone.activate(pytz.timezone("Europe/London"))
то, как определять
FishHook
нужную таймзону
?
брать из HTTP заголовков?

Офлайн

#8 Дек. 15, 2017 05:01:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.




Офлайн

#9 Дек. 15, 2017 13:51:25

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.

Вам , наверное, єто нужно
https://pypi.python.org/pypi/pytz

Офлайн

#10 Дек. 15, 2017 15:16:12

ivn
Зарегистрирован: 2017-01-13
Сообщения: 91
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно работать со временем из разных часовых поясов.

helm2004
Вам , наверное, єто нужно https://pypi.python.org/pypi/pytz
С помощью этого модуля можно преобразовать UTC время (которое хранится в БД) в нужный формат для нужного часового пояса, но как определить какой нужен часовой пояс для клиента, который отправил запрос? или как обычно это делают?

например я чатюсь с помощью браузера из Лондона с пользователем из Токио. У него в чате его время у меня в чате свое время, данные хранятся на сервер.

Офлайн

  • Начало
  • » Django
  • » Как правильно работать со временем из разных часовых поясов.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version