2013-07-21 1 views
5

私はJSONを使用してクライアントにデータを送信しています。ただし、日付フィールドは/Date(1363807800000)/のようなタイムパンフフォーマットに変換されます。JSONで日付時刻の書式を変更する方法はありますか?

とにかくそれを取り除き、サーバに2013/7/21 3:44 PMのような値をクライアントに送信させるにはどうすればいいですか?この

+0

JSON fmtの何が問題なのですか? –

+0

どのようなサーバープログラミング言語を使用していますか? – simonzack

+0

サーバー側の言語にはC#を使用します –

答えて

2

だと思い、次に

var data = "/Date(1363807800000)/"; 
var date = new Date(parseInt(data.replace("/Date(", "").replace(")/", ""), 10)); 
var result = date.getFullYear() + "-" + (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-" + (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " " + (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":" + (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()); 

、それを検証するために、この正規表現を使用し、

/^\ d {4} - \ d { 2} - \e{2} \e{2}:\e{2}:\e{2} $/

希望はこのことができます... :)私は一度これを書いた

1

、多分あなたあなたのjsonに文字列を追加できますか?ここで

var getDate = function() { 
    var date = new Date(); 
    var prefix = "[" 
     + date.getDate() + "." 
     + (date.getMonth() + 1) + "." 
     + date.getFullYear() + " " 
     + date.toString().split(" ")[4] 
     + "]"; 
    return prefix; 
}; 
2

Json.NETを使用したソリューションは、(あなたがNuGet経由でインストールすることができます)です。

object testObject = new { Name = "TestName", DateTime = DateTime.Now }; 
string output = JsonConvert.SerializeObject(testObject, new IsoDateTimeConverter()); 
Console.Write(output); 

出力:

"{\" 名前\ ":\" テスト名\ "DateTime \":\ "2013-07-21T15:01:56.2872469 + 03:00 \"} "

ISO DateTime形式がうまくいかない場合は、 SerializeObject関数で使用する独自のDateTimeConverterを記述します。

関連する問題