私たちのアプリケーションは、JavaScript(jQuery)に大きく依存しています。したがって、多くの 'application/json'リクエストがあります。ASP.NET MVC - Javascriptアプリケーションの日付を処理する最善の方法
私たちはしばらくの間、日付に苦労していましたが、私たちの努力にもかかわらず、 はASP.NET MVCアプリケーションでそれを処理する方法を理解できませんでした。私たちが望むものをここで
:
- シリアル化/(好ましくはDateTimeKind.Utcで)サーバ側でDateTimeオブジェクトをデシリアライズ。
- クライアント側でDateオブジェクトを操作します。 UTCで作業してください。何らかの形で日付をフォーマットします。ここで
が問題となっている:
日クライアントオブジェクトは、エンドユーザーのタイムゾーンに常にあります。
JSON.stringify(new Date())
は自動的にシフトを行います。JSON Stringify changes time of date because of UTC
この質問ヘルパービットが、我々はそれをサーバーに送信する前に、日付をシフトするために覚えておく必要があります。 JSONが日付を認識していないことはわかっていますが、JSON.parseのアナログを使って日付を解析するといいでしょう。
new Date('2012-10-19T10:23:47.778Z')
は、私たちは、ニュートンJson.netは/デシリアライズの日付をシリアル化するために使用しますが、それはDateTimeKind.Unspecifiedでそれをしない
質問:
で動作するようにエレガントな方法がありますサーバーと クライアントの両方の日付? アプリケーション全体でクロスカットの必要があります。
UPD:
私はより明確にそれを入れていました。私たちのアプリケーションでは、私たちは日付だけで動作するので、クライアントタイムゾーンを考慮する必要はありません。
サーバが2012-10-19T10:23:47.778Z'
を返すのであれば、我々はDateオブジェクトを必要とする:
Fri Oct 19 2012 10:23:47 GMT+0300 (Kaliningrad Standard Time)
ない
Fri Oct 19 2012 13:23:47 GMT+0300 (Kaliningrad Standard Time)
(日がずれている)
'JSON.stringify'は*を* UTCに変換しませんか? – James
これらの問題を自分で経験した後、次のような人が私に尋ねました。「クライアント上にオブジェクトそのものが必要なのか、それとも正しい表記が必要なのか」彼は私の場合には正しかったし、正しい文化によってフォーマットされた正しい日付の文字列表記を返すことに決めました。 –