2016-03-27 21 views
0

すべてのDateTimeオブジェクトを "yyyy-MM-dd"の基本形式にする必要があります。私はこれを行うにはJSON.Netを使用していたときWeb API 2.0 - JavaScriptConverterを使用したカスタム日付書式設定

、それはWebApiConfig.csに以下を追加することでうまく働い:

config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
     new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd" }); 

はしかし、私はIHttpActionResultだけreturn Json(objectToSerialize)を返すために、私のコントローラを再加工しています。現在、日付形式は間違っています。これは現在、JavaScriptConverterを使用しているためです。私が間違っているなら教えてください。

シリアル化されたオブジェクトのすべてのDateTimeを、必要な形式に変換するにはどうすればよいですか?

デフォルトでは、現在「1927-01-29T00:00:00」と表示されています...「1927-01-29」が必要です。

トータルオーバーキルのような奇妙なハッキングが見られました(this oneなど)。

これを行うにはきれいな方法がありますか?

+0

を保持している必要があります。しかし、あなたが本当にJavaScriptConverterを使用する必要がありますか? –

+0

正直なところ私は考えていないので、私は尋ねているのです。私はオブジェクトをシリアル化するときにこのフォーマットでWeb APIがすべての日付を書式設定するようにするグローバル設定を好むでしょう。コントローラは 'IHttpActionResult'を返し、戻りラインは' return Json(myObject) 'です。 – Patrick

答えて

2

でも、IHttpActionResultを使用することはできますが、返されるのは正しいことではありません。あなたのケースでは、私はあなたが経由でそれを修正することができると信じて:

return Ok(objectToSerialize); 

それはWEBAPIにデフォルトでJSON.NETを維持し、あなたがあなたの日付フォーマットが

+0

それはトリックでした。ありがとう。私は、JsonResultを期待して、今OkNegotiatedContentResultを見ている私のユニットテストの多くを書き直さなければならないが、それは問題ない。 – Patrick

関連する問題