У меня есть приложение на основе прогнозов, работающее в Windows Azure ( http://ipredikt.com ). Насколько я могу судить, часы Azure синхронизированы с часовым поясом GMT. Вот проблема, с которой я сталкиваюсь:
Допустим, у меня есть поле БД с именем CreateDate типа DateTime, и я установил его значение на 10 июня 2011 г., 00:30. при создании нового прогноза. Если я загляну внутрь таблицы db, дата будет установлена правильно. Я никак не трогаю и не изменяю это значение. Однако, когда я читаю значение с помощью нашего API, сериализую его и отправляю клиенту, я получаю дату со значением 09 июня 2011 г., 17:30. (DLL API также находится в облаке и, вероятно, совмещена с БД.)
Мой клиентский браузер работает в PST (тихоокеанский часовой пояс), и кажется, что разница в 7 часов связана с разницей между PST и GMT. Код API, используемый для сериализации значения, похож на этот:
System.Web.Script.Serialization.JavaScriptSerializer сериализатор = новый JavaScriptSerializer();
вернуть сериализатор. Сериализация (объект данных);
Это ошибка в объекте JavaScriptSerializer или есть способ исправить эту дельту? По сути, я не хочу, чтобы платформа .NET каким-либо образом вмешивалась в это значение, я просто хочу, чтобы поле БД просто возвращалось как есть.