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

2022-01-16 00:00:00 datetime timezone 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

示例 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.

推荐答案

可以使用Moment.js等库这样做.

查看字符串+格式解析.

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 的字符串解析器,它看起来就像您提供的格式,除了时间的秒数和时区之间的空格.

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

相关文章