アプリケーションはローカルホストで実行されています。サーバーはクライアントより 1 時間早いです。
クライアント送信時刻: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}
との間に 1 時間の差があるのはなぜですか? どうすれば対処できますか? どういうわけか夏時間と標準時間に関連していると推測できます。
このコードを試すと:
string dateStr = "2015-04-25T04:00:00.000Z";
var myDate = DateTime.Parse(dateStr); // it gives me myDate = {4/25/2015 12:00:00 AM}
実際、私は時間の一部だけに興味があります。私のデータベースでは、日付型として保持しています。でも、この時差のせいで、私の日は一日早くなってしまいます。
問題を処理するためにさまざまな方法を試しましたが、日時変換の世界で完全に迷子になりました! 私は localhost アプリケーションで迷っていましたが、実際のサーバーで何が起こるか想像できませんでした。
このQ&Aでも同様の問題が言及されていると 思いますが、それが重要かどうかはわかりません:
私のタイムゾーン: 東部標準時 (UTC-05:00)
Web API odata jsonシリアライザーについて、この投稿から、これ以外のものと言えます
ここに私のサーバーコードがあります:
// 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
...
}
クライアントはAngularjsでhttpパッチリクエストを送信しています