ため日時種類UTCを設定する私は次のコードを持っている:どのようWEBAPI URLパラメータ
[HttpGet]
[Route("{startDateUtc:datetime}/{endDateUtc:datetime}/{pageNumber?}", Name = "MyRoute")]
[ResponseType(typeof(List<string>))]
public IHttpActionResult GetData(DateTime? startDateUtc, DateTime? endDateUtc, int pageNumber = 1)
{
HandleData(startDateUtc.Value, endDateUtc.Value, pageNumber);
return this.Ok();
}
することは私には、次のURLを使用しよう:http://localhost:5555/MyRoute/2014-09-17T00:00:00Z/2014-09-18T00:00:00Z/1 問題がstartDateUtc.Value
とendDateUtc.Value
は親切property = DateTimeKind.Local
を持っているということです。 DateTimeKind.Utc
種類の日付があります。
たとえば、.ToUniversalTime()
関数を適用するか、日時パラメータを処理するフィルタを実装して.ToUniversalTime()
を呼び出します。しかし、これらはすべてのプロジェクトにこれらを置く必要があるので、これはうまくいかない。
Global.asax
に何らかの設定をすることができますか、または終了時に基づいてdatetime URLパラメータの一部のパーサーを実装し、例文.ToUniversalTime()
を呼び出すことはできますか?あなたはあなたのためのdateTimeに
// Change the Kind property of the current moment to
// DateTimeKind.Utc and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc);
Display("Utc: .............", myDt);
// Change the Kind property of the current moment to
// DateTimeKind.Local and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local);
Display("Local: ...........", myDt);
// Change the Kind property of the current moment to
// DateTimeKind.Unspecified and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified);
Display("Unspecified: .....", myDt);
を一種のUTCのプロパティを指定することができます
ようにする必要があり、しかし、これはToUniversalTime()関数を使用して持つように同じです。私は約20の他のコントローラーを持っていて、同じような動作をしたいと思っています。つまり、これらの他の20個のコントロールX 3-4のルートにこの修正を適用するということです。 datetimesを扱うためのエントリーポイントを1つ持っていたい。 – Alexander
UTCに変換する一般的な方法を書かないと、特定の種類に変換された日付時刻を渡すだけです。 –
これをすべてのアクションに貼り付ける必要があるからです。新しいコントローラを追加したい他の開発者は、これを行う必要があります。理想的には、URLのdatetimeの解析で組み込みを行い、これにフラグを使用している場合はdatetime ORを修正したいと考えています。たとえば、JSON本体の解析には、フラグGlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.DateTimeZoneHandlingがあります。私のタクのために同じものがあれば、それはクールだ。 – Alexander