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