将Java日期字符串转换为JavaScript日期

11

当我从Java通过JSON将日期发送到Javascript时,它发送了这样的内容:

var ds = "11:07:47 13/01/2011";

Javascript不能将这个字符串解析为日期

var d = new Date(ds);

有什么想法吗?


3
这个问题是在2011年1月提出的,重复链接是在2011年4月,怎么可能是重复的? - Bertrand Martel
“重复问题”已被关闭,因为不清楚所询问的内容。现在是重新开放此问题的时候了。 - Robert Siemer
4个回答

17
你需要一些JavaScript来解析字符串并返回年份、月份、日期、分钟、小时和秒数的字符串:
var hour = ds.split(":")[0],
    minute = ds.split(":")[1],
    last_part = ds.split(":")[2],
    second = second_part.split(" ")[0],
    last_part2 = second_part.split(" ")[1],
    day = last_part2.split("/")[0],
    month =  last_part2.split("/")[1],
    year =  last_part2.split("/")[2];

然后实例化Date构造函数:

var d = new Date ( year, month, day, hour, minute, second );

1
第三行应该是 second = ds.split(":")[2],,删除第四行,第五行应该是 last_part2 = ds.split(" ")[1],。你可以将 last_part2 重命名,因为它不再是第二个了。 - dee-see
感谢您编写这段代码,它非常完美地运行了! - orshachar
1
另一种方法是使用moment.js来获取一个Date对象:var d = moment(ds, "HH:mm:ss DD/MM/YYYY").asDate();第二个字符串是用于解析输入日期字符串的格式。 - Agi Hammerthief

5

为了更加保险,您应该在Java中获取以毫秒为单位的时间,并将其发送到JavaScript中。您可以在那里使用

var d = new Date();
d.setTime(valueInMilliseconds);

4

您可以使用多种方式调用Date构造函数。
参考http://www.w3schools.com/js/js_obj_date.asp

new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)

3
function stringToDate(_date,_format,_delimiter)
{
        var formatLowerCase=_format.toLowerCase();
        var formatItems=formatLowerCase.split(_delimiter);
        var dateItems=_date.split(_delimiter);
        var monthIndex=formatItems.indexOf("mm");
        var dayIndex=formatItems.indexOf("dd");
        var yearIndex=formatItems.indexOf("yyyy");
        var month=parseInt(dateItems[monthIndex]);
        month-=1;
        var formatedDate = new Date(dateItems[yearIndex],month,dateItems[dayIndex]);
        return formatedDate;
}

stringToDate("17/9/2014","dd/MM/yyyy","/");
stringToDate("9/17/2014","mm/dd/yyyy","/")
stringToDate("9-17-2014","mm-dd-yyyy","-")

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