Несмещенная система времени C # - PullRequest
4 голосов
/ 11 октября 2011

Я создаю систему напоминания для программного обеспечения, которое у нас есть.В настоящее время у меня есть пользователь, дающий мне время, которое он хотел бы напомнить, и я сохраняю его в базе данных.

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

Я только сейчас понял, что это может не сработать из-за разницы часовых поясов.

Мой вопрос, что такоелучший способ справиться с разницей во времени на сервере и на клиенте, чтобы напоминание было точным?

Например ... наш сервер настроен на центральное время, скажем, в 18:00 ...... Пользователь, находящийся на восточном побережье, хочет получить напоминание в 7:00 вечера ... это означает, что мой сервер должен будет отправить напоминание в 18:00 по времени сервера.

Надеюсь, вопрос ясен.

Ответы [ 2 ]

6 голосов
/ 11 октября 2011

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

2 голосов
/ 11 октября 2011

Храните все в универсальном времени и обновляйте своих клиентов на основе этого преобразования.

Проще говоря, вместо того, чтобы ваши клиенты отправляли вам запрос на 6:00 EST, попросите их сначала рассчитать конверсию между EST и UTC и вместо этого отправить вам UTC.

...