如何转换此日期格式:/Date(1268524800000)/? [复制]

Posted

技术标签:

【中文标题】如何转换此日期格式:/Date(1268524800000)/? [复制]【英文标题】:How to convert this date format: /Date(1268524800000)/? [duplicate] 【发布时间】:2012-01-05 20:44:38 【问题描述】:

可能重复:How to format a JSON date?

我正在通过 javascript 调用 JSON Web 服务,StartDate 字段是 /Date(1268524800000)/。如何将其转换为人类可读的格式?d

【问题讨论】:

它是什么格式的?是时间戳吗?如果网络服务有文档,它应该在那里 同question 好吧,这种格式可能无法立即识别。我认为这么多反对票有点苛刻。 (但是 +1 @Nathan 发现了一个很棒的骗子) 网络服务帮助说类型是"type="xs:dateTime"" 自 1970-01-01 00:00:00 UTC 以来似乎是毫秒;表示的日期是 Sun 2010-03-14 00:00:00 UTC。 (这并没有回答如何转换它的问题,但它提供了一个线索,告诉你如果你使用的是 JavaScript 以外的其他语言。)当然,将它转换为人类可读格式的一种方法是训练自己阅读该格式。 8-) 【参考方案1】:

试试这个:

var str = "/Date(1268524800000)/";
var num = parseInt(str.replace(/[^0-9]/g, ""));
var date = new Date(num);
alert(date);

小提琴:http://jsfiddle.net/dS2hd/

【讨论】:

如果数字是负数怎么办? 不应该是因为它确实代表了来自系统的日期 @TruMan1 - 1969 年之前的任何日期在 JavaScript 中都有一个负序列号。 在@gilly3 之前不知道该反向引用:/(\-?\d+)/.test(str) ? new Date(+RegExp.$1) : null; 这里给出的答案更快,因为它不需要正则表达式解析:***.com/a/2316066/163227【参考方案2】:

您可以使用正则表达式获取毫秒数,然后使用 Date 构造函数获取 Date 对象。一旦你有了你的日期对象,你就可以用它做任何你想做的事情。

var ms = parseInt("/Date(1268524800000)/".match(/\((\d+)\)/)[1]);
var d = new Date(ms);
alert(d.toString());

【讨论】:

【参考方案3】:

您可以eval() 它,也可以提取数字并将其传递给Date 构造函数。

if (/^\/Date\((-?\d+)\)\/$/.test(val)) 
    var serial = parseInt(RegExp.$1);
    val = new Date(serial);

我看到日期表示为 /Date(1234567890000-0500)/,因此可能需要更强大的程序来处理 UTC 偏移量。

【讨论】:

以上是关于如何转换此日期格式:/Date(1268524800000)/? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库中如何将字符串格式化为日期

如何将JAVA DATE类型的日期 转换成指定格式类型的 (如:YYYY-MM-DD) 的 DATE类型数据?

将 JSON 日期转换为 MM/DD/YYYY 格式?

Swift如何转换日期格式[重复]

oracle日期转换

如何将 NUMBER 转换为 DATE 格式