使用Javascript将iso时间戳转换为日期格式?

这似乎是一个非常简单的问题,但我似乎无法得到答案。 如何使用JavaScript转换iso时间戳以显示日期/时间?

示例时间戳:2012-04-15T18:06:08-07:00

感谢任何帮助,谷歌让我失望。 谢谢。

将它传递给Date构造函数。

 > var date = new Date('2012-04-15T18:06:08-07:00') > date Mon Apr 16 2012 04:06:08 GMT+0300 (EEST) 

有关Date的更多信息,请查看https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date 。

最新版本的javascript(在某些最新浏览器中为v1.85或更高版本)可以直接处理ISO日期,因此您只需将字符串直接传递给Date()构造函数,如下所示:

 var jsDate = new Date("2012-04-15T18:06:08-07:00"); 

但是旧的浏览器(IE9之前的任何IE版本,4之前的任何版本的Firefox等等)都不支持这一点。 对于那些浏览器,您可以获得一个可以像datejs一样为您执行此操作的库,也可以像下面这样自己解析:

 var t = "2012-04-15T18:06:08-07:00"; function convertDate(t) { var dateRE = /(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)([+\-]\d+):(\d+)/; var match = t.match(dateRE); var nums = [], item, date; if (match) { for (var i = 1; i < match.length; i++) { nums.push(parseInt(match[i], 10)); } if (nums[7] < 0) { nums[8] *= -1; } return(new Date(nums[0], nums[1] - 1, nums[2], nums[3] - nums[6], nums[4] - nums[7], nums[5])); } } var jsDate = convertDate(t); 

在这里工作演示: http : //jsfiddle.net/jfriend00/QSgn6/

这是迄今为止我见过的最好的,能够使用客户端的桌面时区并实时更改时区设置: