我的日期字符串的格式如下所示:yyyy-MM-ddTHH:mm:ss-0Z00
示例 1:2010-03-05T07:03:51-0800
示例 2:2010-07-01T20:23:00-0700
我需要使用这些日期字符串创建一个日期对象。new Date()
不适用于此字符串。请帮我将这些日期字符串转换为具有本地时区的日期对象。
谢谢!
编辑:我在 Pentaho Data Integration 4.3.0 中使用它。
我的日期字符串的格式如下所示:yyyy-MM-ddTHH:mm:ss-0Z00
示例 1:2010-03-05T07:03:51-0800
示例 2:2010-07-01T20:23:00-0700
我需要使用这些日期字符串创建一个日期对象。new Date()
不适用于此字符串。请帮我将这些日期字符串转换为具有本地时区的日期对象。
谢谢!
编辑:我在 Pentaho Data Integration 4.3.0 中使用它。
以我的时区为例(AEST):
function parseDate(str_date) {
return new Date(Date.parse(str_date));
}
var str_date = "2015-05-01T22:00:00+10:00"; //AEST time
var locale_date = parseDate(str_date);
locale_date:2015 年 5 月 1 日星期五 22:00:00 GMT+1000 (AEST)
var str_date = "2015-05-01T22:00:00+00:00" //UTC time
var locale_date = parseDate(str_date);
locale_date:2015 年 5 月 2 日星期六 08:00:00 GMT+1000 (AEST)
您可以使用Moment.js等库来执行此操作。
请参阅字符串 + 格式解析。
http://momentjs.com/docs/#/parsing/string-format/
以下内容应解析您提供的日期,但您可能需要根据需要对其进行修改。
var oldDate = "2010-03-05T07:03:51-0800";
var dateObj = moment(oldDate, "YYY-MM-DDTHH:mm:ssZ").toDate();
或者,请参阅 Moment 的字符串解析器,它看起来像您提供的格式,除了时间的秒数和时区之间的空格。
http://momentjs.com/docs/#/parsing/string/
第二种方法是 Date.js,另一个似乎可以很好地解析格式的库。http://www.datejs.com
日期字符串:
var strDate = "2010-07-01T20:23:00-0700";
本地 JS Date 对象中的本地时间表示:
var ltzDate = (new Date(strDate)).toLocaleString();