Имам базирано на прогнози приложение, което е на Windows Azure ( http://ipredikt.com). От това, което мога да кажа, часовникът на Azure е синхронизиран с часовата зона GMT. Ето един проблем, който срещам:
Да приемем, че имам поле в DB, наречено CreateDate от тип DateTime и задам стойността му на 10 юни 2011 г., 00:30 ч. когато се създаде нова прогноза. Ако надникна в db таблицата, датата е правилно зададена. Не пипам и не променям тази стойност по никакъв начин. Въпреки това, когато прочета стойността с нашия API, сериализирам я и я изпратя на клиента, получавам дата със стойност 09 юни 2011 г., 17:30 ч. (API dll също живее в облака и вероятно е съвместно с DB.)
Клиентският ми браузър работи в PST (тихоокеанска часова зона) и изглежда, че разликата от 7 часа се дължи на разликата между PST и GMT. API кодът, използван за сериализиране на стойността, е подобен на този:
System.Web.Script.Serialization.JavaScriptSerializer сериализатор = нов JavaScriptSerializer();
връщане serializer.Serialize(dataObject);
Това грешка в обекта на JavaScriptSerializer ли е или има трик за коригиране на тази делта? По принцип не искам рамката .NET да се намесва в тази стойност по никакъв начин, просто искам полето DB да се връща както е.