繁体   English   中英

使用JavaScript将带有时区的日期字符串转换为本地时间的日期对象

[英]Use JavaScript to convert a date string with timezone to a date object in local time

我的日期字符串的格式如下所示: yyyy-MM-ddTHH:mm:ss-0Z00

例12010-03-05T07:03:51-0800

示例22010-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年2月2日08:00:00 GMT + 1000(AEST)

您可以使用Moment.js等库来执行此操作。

请参阅String + Format解析。

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的String解析器,它看起来像您提供的格式,但时间秒和时区之间的空格除外。

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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM