有没有办法在JSON中更改日期时间格式?

5

我正在使用JSON向客户端发送数据。然而,日期字段会被转换为类似于/ Date(1363807800000)/ 的时间跨度格式。

是否有任何方法可以摆脱它,让服务器将 DateTime 值像 2013/7/21下午3:44 一样发送到客户端?


JSON fmt 有什么问题吗? - Sriram Sakthivel
你使用什么服务器编程语言? - simonzack
我们使用C#作为服务器端语言。 - Mehdi Emrani
1
https://dev59.com/i3NA5IYBdhLWcg3wUL5Y - Yazdan Bayati
请查看Perishable Dave在此线程中的回答:https://dev59.com/6nRB5IYBdhLWcg3wFz4g。这应该是你要找的内容。 - CodingIntrigue
显示剩余4条评论
3个回答

1
想一想,
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.NET解决方案(您可以通过NuGet安装它):

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

输出:

"{\"Name\":\"TestName\",\"DateTime\":\"2013-07-21T15:01:56.2872469+03:00\"}"

如果ISO日期时间格式不适合您,您可以编写自己的DateTimeConverter来与SerializeObject函数一起使用。

0

我曾经写过这个,也许你可以将这个字符串添加到你的 JSON 中?

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接