Разница во времени на сервере-клиенте после отправки - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть приложение Silverlight для оценки агента.При выполнении оценки DateTime отображается правильно, но после того, как я отправляю оценку, где я хочу изменить ее позже, я вижу, что разница составляет -5 часов.Клиент из Канады, но сервер, кажется, где-то еще.Я немного читал об этом (должен использовать UTCDateTime), но это немного сложно для тестирования, потому что приложение должно быть развернуто для тестирования, чтобы я не хотел снимать в темноте.

Любая помощь?

Редактировать: Вот как я создаю оценку

CurrentEvaluation = new Evaluation();
CurrentEvaluation.CreatedBy = UserID;
CurrentEvaluation.CreatedDate = DateTime.Now;
CurrentEvaluation.EvaluatorID = UserID;
CurrentEvaluation.EvaluationDate = DateTime.Now;
CurrentEvaluation.UserID = CurrentUser.UserID;
CurrentEvaluation.TenantID = CurrentTenant.TenantID;

Достаточно ли просто сказать CurrentEvaluation.EvaluationDate = DateTime.Now.ToUniversalTime();, а затем преобразовать ее обратно в местное время?

1 Ответ

1 голос
/ 05 декабря 2011

Это может быть излишним для вашего конкретного примера, но при работе с датой / временем, происходящими из разных часовых поясов (отличающихся от сервера или также между клиентами), лучше хранить их, используя новый DateTimeOffset структура, представленная в Silverlight 3 вместе с типом поля datetimeoffset SQL Server 2008 R2.

Это дает вам возможность определять не только «универсальное время», но и знать, какое время относительно любого данного клиента .

Когда впервые появились службы RIA, он не поддерживал тип DateTimeOffset (поэтому нам пришлось фиксировать исправление, включающее DateTime и смещение int), но это было исправлено в более позднем пакете обновления RIA, поэтому вы можете использовать DateTimeOffsets, так как они были предназначены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...