У меня есть сценарий, который позволяет пользователям отправлять данные в базу данных, когда данные отправляются, также добавляется метка времени, мой местный часовой пояс - GMT, как и время моего сервера, установленное в plesk 11, но когда данные поступают в его на час позже, из-за перехода на летнее время.
Как лучше всего противодействовать этому, я думал установить свой часовой пояс -1 час, но это кажется немного грязным способом сделать это.
Лучший способ (IMHO) - написать метку времени в формате UTC. Это всегда правильно и может быть преобразовано в любой часовой пояс с соответствующими правилами летнего времени, учтенными вашим приложением и его библиотечными функциями.
Что не так с использованием собственного системного времени (или преобразования времени клиентских систем во время, используемое для сервера db)? Каждая основная ОС изначально поддерживает летнее время в часовом поясе. (Даже когда спецификации DST меняются, соответствующие ОС исправляются, чтобы приспособиться.)
Если вы используете NTP, он должен автоматически переводить ваши часы на летнее время, если в выбранном часовом поясе он включен.
Но я согласен с SvW. UTC было бы лучше, если бы вы и ваши клиенты находились в разных часовых поясах.