2

ASP.NET WEB.API 4 と、次の json を返すコントローラーがあります。

{   date: "2013-03-14T00:00:00"   }

クライアント (JavaScript) で解析します。

date = new Date(json.date); // json.date being "2013-03-14T00:00:00"

後で POST を実行すると、本文で日付の形式が次のように変更されました

{   date: "2013-03-13T23:00:00.000Z"   }

私の推測では、JavaScript またはブラウザーによっていくつかのタイム ゾーンが追加されたのでしょうか?

日付を int (yyyymmdd) として格納する DB のため、次の変換を行います。

public static int ToInt(DateTime date)
{
    return date.Year * 10000 + date.Month * 100 + date.Day;
}

結果のintは1日オフになります:(

しかし、もしそうなら

date.ToLocalTime()

ToInt メソッドを呼び出す前は問題ないようです。

私はこれを正しく理解し、ToLocalTime() で十分な解決策でしょうか? それとも、.NET と JavaScript で UTC 日付を読むのに 1 日を費やす必要がありますか?

ありがとう!

4

2 に答える 2

1

私の意見では、コントローラーが ZULU 形式で日付を返すと、より良い結果が得られます。したがって、送信する前に次を使用します: ToUniversalTime ( http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx ) 結果も ZULU 形式になるため、変換する必要はありません。現地時間へ

于 2013-04-06T14:09:54.810 に答える