Как обеспечить правильное использование DateTime? - PullRequest
1 голос
/ 05 июня 2009

У меня есть клиент Silverlight, который общается с некоторыми веб-службами ASP.NET, которые затем изменяют базу данных. У клиента есть данные, которые можно изменить и отправить через базу данных через веб-сервисы. Эти данные упорядочены по дате.

Очевидно, что клиент может находиться в другом часовом поясе, чем сервер ASP.NET, поэтому как мне убедиться, что информация DateTime находится в правильном часовом поясе для базы данных? Сохранится ли информация о часовом поясе DateTime между клиентом и сервером так, что преобразование в UTC правильно приведет к времени UTC, или преобразование в UTC должно произойти на клиенте?

1 Ответ

5 голосов
/ 05 июня 2009

Вы должны использовать DateTime.UtcNow в своем коде, тогда нет никаких сомнений относительно того, где необходимо преобразование.

Поскольку Silverlight работает с использованием среды выполнения .NET на компьютере клиента, я предполагаю, что он получит время в местном часовом поясе пользователя.

Вы можете использовать класс TimeZoneInfo в Silverlight для получения информации о часовом поясе, в котором находится пользователь. Сам класс DateTime не хранит конкретную информацию о часовом поясе (независимо от того, является ли время универсальным или по местному времени), поэтому вам необходимо использовать его для определения часового пояса пользователя.

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