Как реализовать часовой пояс в веб-приложении? - PullRequest
2 голосов
/ 28 января 2009

Я хочу реализовать часовой пояс в своем веб-приложении. Я исследовал и увидел, что большинство веб-приложений используют раскрывающийся список GMT, вот ссылка на этот раскрывающийся список http://www.attackwork.com/BlogEntry/6/Time-Zone-Dropdown-Select-List/Default.aspx

Тогда я увидел эту статью, в которой предлагалось использовать UTC, когда дело доходит до внедрения часового пояса. http://aspnet.4guysfromrolla.com/articles/081507-1.aspx В основном говорится, что не используйте DateTime.Now , вместо этого используйте DateTime.UtcNow

Мои вопросы,

  1. Есть ли в UTC выпадающий список часовых поясов, как, например, первая ссылка, которую я показал, есть в GMT?
  2. Должен ли я действительно использовать UTC или GMT?

Ответы [ 6 ]

3 голосов
/ 28 января 2009

.NET 3.5 предоставляет класс TimeZoneInfo , который позволит вам сравнительно легко заполнить раскрывающийся список часовыми поясами. Время по Гринвичу наступило до того, как UTC и UTC были официально учреждены 1 января 1972 года. См. эту ссылку для получения дополнительной информации. Для сегодняшних целей эти два понятия в значительной степени являются синонимами, хотя имеют различное историческое происхождение. Используйте тот, который выглядит и функционирует лучше для ваших целей.

2 голосов
/ 28 января 2009

Я не уверен, что это то, что вы намеревались спросить, но в вашей базе данных вы всегда должны хранить метки времени в UTC / GMT (как отмечали другие, они означают, по сути, одно и то же). Для каждого пользователя вашего веб-приложения сохраните настройки часового пояса.

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

1 голос
/ 28 января 2009

GMT (среднее время по Гринвичу) совпадает с UTC (всемирное координированное время). Это не или / или выбор - используйте его:)

0 голосов
/ 28 января 2009

Различие между UTC и GMT, вероятно, слишком хорошо, чтобы беспокоиться в вашем коде. Тем не менее, это, вероятно, хорошая идея - всегда сохранять и обрабатывать время внутри компании с нулевым смещением часового пояса и рассматривать это как проблему презентации.

Также возможно использовать JavaScript для определения вероятного часового пояса пользователя: изучите смещения часового пояса для некоторой пары Date объектов, достаточно близких к солнцестоянию (даже 1 января и 1 июля дает подходящее приближение), чтобы получить грубый часовой пояс удостоверение личности. Не стесняйтесь использовать эту информацию для определения часового пояса по умолчанию, но разрешите изменять его пользователю: JavaScript не предоставляет достаточных подробностей для выбора точного часового пояса с национальными и региональными историческими сдвигами, и он может быть не включен пользователь в любом случае.

0 голосов
/ 28 января 2009

Если вы не работаете с SQL Server 2008 или не хотите абстрагировать управление часовым поясом для базы данных, вы должны хранить все время как UTC / GMT и применять разницу часовых поясов на основе настроек профиля пользователя, чтобы со всего мира можно увидеть временные метки событий в их местном времени.

0 голосов
/ 28 января 2009

Используйте настройки, функции и возможности локализации везде, где это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...