Как управлять часовыми поясами в веб-приложении?

Испытайте этого:

(((long)str1.GetHashCode()) + ((long)str2.GetHashCode())).GetHashCode()
5
задан Mike Atlas 16 November 2009 в 23:24
поделиться

4 ответа

  1. Сохранять дату / время в формате UTC (не уверен, что это за команда Python)

  2. При выводе дат заключите их во вспомогательную функцию, которая получает предпочтение часового пояса текущего пользователя, затем отрегулируйте время / дату для смещения, затем выведите их из приложения.

http://docs.python.org/library/time.html

http://docs.python.org/library/datetime .html

2
ответ дан 15 December 2019 в 01:04
поделиться

Попробуйте фрагмент кода Django Поле DateTime UTC . В нем есть практически все, что вам нужно, прямо из коробки.

1
ответ дан 15 December 2019 в 01:04
поделиться

Использование единого часового пояса «время базы данных» является, ИМО, лучшим вариантом, потому что: -

  • Он значительно упрощает процедуры для работы с людьми в разных часовых поясах
  • Это позволяет упростить преобразование в другие часовые пояса
  • Любой, кто видит данные вне контекста представления пользователя, может предположить, что это UTC, и ему не нужно угадывать, является ли «12:45» для одной записи «12:45» для другой.
  • Стандарты хорошо

Так что да. Сохраните часовой пояс пользователя в базе данных, а затем сохраните все время в общем времени (например, в формате UTC). Преобразуйте их, когда пользователь просматривает что-либо, включая время. Это самое простое решение, которое не просто заставляет всех пользователей делать вид, что они находятся в одном часовом поясе.

0
ответ дан 15 December 2019 в 01:04
поделиться

Для INSERT / UPDATE / DELETE короткий ответ - «Да». База данных должна будет проверить, что ссылочная целостность не нарушена и создание / изменение разрешено. Или, в случае DELETE, может потребоваться некоторое каскадирование.

Для SELECT на самом деле все наоборот. У внешних ключей есть секретное дополнительное преимущество, заключающееся в том, что они показывают вам, где именно вы, скорее всего, будете выполнять сложные JOIN, и имеют очень часто используемые поля. Это значительно упрощает работу по индексации, и вы можете в значительной степени гарантировать, что все ваши поля FK должны быть проиндексированы. Это делает SELECT намного быстрее.

и json_encode () it.

обычно вы должны хранить свои даты как метки времени в формате UTC в базе данных и преобразовывать их в текст и обратно в соответствующий часовой пояс на этапах ввода и вывода веб-приложений. Когда у вас сохранен часовой пояс для каждого пользователя, тогда легко переключить часовой пояс по умолчанию на индивидуальный.

pytz - обычное решение для выбора и преобразования часовых поясов. (Хотя лично я взломал свою менее обширную коллекцию часовых поясов.)

1
ответ дан 15 December 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: