Метки времени международной репликации - PullRequest
0 голосов
/ 01 июля 2010

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

Это значение передается на сервер при каждом запросе данных репликации, и сервер сравнивает его с полем в моей базе данных.вызывается LastUpdated и возвращает строки, в которых LastUpdated> LastReplicated.

В большинстве случаев это работает нормально, но проблема в том, что когда я начинаю работать с международными датами и моментами, когда эта стратегия разваливается.никогда не писал никаких «движков» репликации и не уверен, как решить эту проблему.Я предполагаю, однако, что решение предполагает использование времени эпохи или универсальных временных меток.

Какова наилучшая практика в таком сценарии?

Любой совет будет высоко оценен ...

1 Ответ

2 голосов
/ 01 июля 2010

Возможно, вы могли бы сохранить значения LastReplication в UTC (Всемирное координированное время), которое можно вычислить как

UTC = (местное время) - часовой пояс

Например, я живу в Акроне, штат Огайо, США, который в настоящее время находится в часовом поясе -4. Поэтому, чтобы найти UTC, я беру свое местное время (в настоящее время 07:17), вычитаю часовой пояс (выраженный в часах), который равен -4, и, таким образом, текущий UTC составляет 11:17. Ваши различные серверы должны знать, в каком часовом поясе они находятся, и часовой пояс данного местоположения может изменяться в течение года (например, в США мы используем летнее время в течение лета, что приводит к изменению часового пояса с -5 на -4 для моего местоположения, а затем мы вернемся к стандартному времени осенью, чтобы часовой пояс изменился с -4 на -5), но я думаю, что большинство современных операционных систем должны быть в состоянии точно указать это значение.

Надеюсь, это поможет.

...