Любая причина, по которой сохранение смещения часового пояса пользователя НЕ является хорошей идеей?
да. Многие. Часовой пояс и смещение — это не одно и то же. Часовой пояс представляет собой географическую область, в которой выровнено местное время. Часовой пояс может претерпевать несколько различных изменений в своем смещении от UTC. Некоторые из них являются регулярными (например, переход на летнее время), а некоторые — нерегулярными (например, когда правительство меняет свое стандартное время или правила перехода на летнее время).
... В моем случае я просто хочу отобразить все значения даты и времени в текущем часовом поясе пользователя, чтобы они были значимы для пользователя.
Итак, допустим, вы проверяете текущее смещение часового пояса пользователя, и это UTC-7. Итак, вы применяете это к некоторым датам и времени в своем приложении и готово - так вы думаете. За исключением того, что вы не учли, что пользователь находится в Калифорнии, а одна из ваших дат приходится на декабрь, когда смещение должно быть UTC-8.
Итак, вы пытаетесь исправить это и работаете по правилу «когда я вижу -7, иногда может быть -8». За исключением того, что теперь у вас появился пользователь, который находится в Колорадо, где зимой -7, а летом -6. Или другой пользователь из Аризоны, где большая часть штата находится в -7 в течение всего года. Как узнать, какому набору правил следовать? Без ссылки на фактический часовой пояс это невозможно.
Это становится еще более сложным во всем мире. Например, количество вариаций для UTC+2 просто сумасшедшее. Даже для стран, которые переключаются между UTC+2 и UTC+3 — они не все переключаются в одни и те же даты или в одно и то же время суток!
См. также: Проблема со временем и часовыми поясами — Computerphile (YouTube) и вики тега StackOverflow timezone
.
person
Matt Johnson-Pint
schedule
21.10.2017