使用JavaScript将具有时区的日期字符串转换为本地时间的日期对象 [英] Use JavaScript to convert a date string with timezone to a date object in local time

查看:121
本文介绍了使用JavaScript将具有时区的日期字符串转换为本地时间的日期对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

The format of my date string looks like this: yyyy-MM-ddTHH:mm:ss-0Z00

示例1:
2010-03-05T07:03:51-0800

example 1: 2010-03-05T07:03:51-0800

示例2:
2010-07-01T20:23:00-0700

example 2: 2010-07-01T20:23:00-0700

我需要使用这些日期字符串创建一个日期对象。 new Date()在此字符串上不起作用。
请帮助我将这些日期字符串转换成与当地时区的日期对象。

I need to create a date object using these date strings. new Date() does not work on this string. Please help me convert these date strings into a date objects with the local timezone.

谢谢!

编辑:我在Pentaho Data Integration 4.3.0中使用这个。

I am using this in Pentaho Data Integration 4.3.0.

推荐答案

你可以使用一个库, a href =http://momentjs.com =noreferrer> Moment.js 执行此操作。

You can use a library such as Moment.js to do this.

请参阅String +格式解析。

See the String + Format parsing.

http:// momentjs.com/docs/#/parsing/string-format/

以下应该解析您提供的日期,但是您可能需要根据需要进行修改。

The following should parse your date you provided, but you may need to modify it for your needs.

var oldDate = "2010-03-05T07:03:51-0800";

var dateObj = moment(oldDate, "YYY-MM-DDTHH:mm:ssZ").toDate();

或者,请参阅Moment的String解析器,它看起来像您提供的格式,但有异常的时间和时区之间的空格。

Alternatively, see Moment's String parser, which looks like it is in the format you provided, with the exception of a space between the seconds of the time and the time zone.

http://momentjs.com/docs/#/parsing/string/

第二种方法是Date.js,另一个类似于解析格式的库就可以了。 http://www.datejs.com

A second way of doing this is Date.js, another library that seems to parse the format just fine. http://www.datejs.com

这篇关于使用JavaScript将具有时区的日期字符串转换为本地时间的日期对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆