2

重複の可能性:
DateTime.ParseExact フォーマット文字列

文字列を DateTime オブジェクトに変換するにはどうすればよいですか?

例:

Sun Oct 07 2012 00:00:00 GMT+0500 (パキスタン標準時)

私はDateTime.Parse、Convert.TODateTimeなどを試しました。どれもうまくいきません。有効な DateTime 文字列ではないというエラーが表示されます。

jqueryからMVCコントローラーのアクションメソッドにdatetimeを送信する方法は次のとおりです。

$.ajax({
        url: '@Url.Action("actionMethodName", "controllerName")',
        type: "GET",
        cache: false,
        data: {
               startDate: start.toLocaleString(),
               endDate: end.toLocaleString()
         },
         success: function (data) {
         }
});

コントローラー アクション メソッドで日時を取得できるようにする必要があります。

public JsonResult actionMethodName(string startDate, string endDate)
{
        if (!string.IsNullOrEmpty(startDate) && !string.IsNullOrEmpty(endDate))
        {
            var start = DateTime.Parse(startDate); //Get exception here
            var end = DateTime.Parse(endDate);     //Get exception here 
        }

        //Rest of the code
}
4

2 に答える 2

5

JavaScriptインスタンスをISO8601形式としてシリアル化するには.toJSON()、JavaScriptインスタンスでこのメソッドを使用することをお勧めします。Date

$.ajax({
    url: '@Url.Action("actionMethodName", "controllerName")',
    type: "GET",
    cache: false,
    data: {
        startDate: start.toJSON(),
        endDate: end.toJSON()
    },
    success: function (data) {
    }
});

これで、コントローラーで何も解析する必要がなくなり、日付を直接操作できるようになります。

public ActionResult ActionMethodName(DateTime startDate, DateTime endDate)
{
    //Rest of the code
}
于 2012-10-09T14:36:38.683 に答える
1

方法を試してくださいDateTime.ParseExact。この例(Pakistan Standard Time)では、文字列の一部を解析しました。

var parsedDate = DateTime.ParseExact("Sun Oct 07 2012 00:00:00 GMT+0500", 
    "ddd MMM dd yyyy hh:mm:ss 'GMT'zzz",
    CultureInfo.InvariantCulture);

その他の例については、これらの MSDN ドキュメントを確認してください。

于 2012-10-09T14:33:51.947 に答える