2013-07-21 72 views
5

我正在使用JSON向客户端发送数据。但是,日期字段会转换为时间范围格式,如/Date(1363807800000)/有没有办法在JSON中更改日期时间格式?

有没有办法摆脱它,让服务器发送DateTime2013/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格式不适合您,那么您c编写自己的DateTimeConverter以与SerializeObject函数一起使用。