Приложение работает на localhost. Сервер на час раньше, чем клиент!Почему существует разница во времени между клиентом и сервером на localhost
Клиент посылает время: Sat Apr 25 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
Запрос отсылается: dateOfArrival: "2015-04-25T04:00:00.000Z"
Сервер получает время: {4/24/2015 11:00:00 PM}
Почему разница в часах между и как я могу справиться с этим? Я мог догадаться, что это как-то связано с дневным временем и стандартным временем.
Когда я пытаюсь этот код:
string dateStr = "2015-04-25T04:00:00.000Z";
var myDate = DateTime.Parse(dateStr); // it gives me myDate = {4/25/2015 12:00:00 AM}
На самом деле я заинтересован только день часть времени. В моем db я держу его как тип Date. Но из-за этой разницы во времени мои дни идут за день до этого.
Я пробовал различные способы справиться с проблемой, но я полностью потерялся в мире конверсии даты и времени! Даже я теряюсь в приложении localhost, я не мог себе представить, что произойдет на реальном сервере.
Я думаю this Q&A также упоминает подобный вопрос, но я не могу понять его , если это имеет значение:
Мой часовой пояс: Eastern Time Zone (UTC-05: 00)
О веб-апи OData сериализатору JSON, from this post я мог бы сказать, что это другой, то this one
Вот мой код сервера:
// PATCH: odata/IncomingStudents(5)
[AcceptVerbs("PATCH", "MERGE")]
public async Task<IHttpActionResult> Patch([FromODataUri] int key, Delta<IncomingStudent> patch)
{
Validate(patch.GetEntity());
var dateOfArrival = patch.GetEntity().DateOfArrival
...
}
Клиент отправляет http-запрос http-запроса