在javascript中读取具有不同时区的日期字符串

Reading a date string with a different time zone in javascript

本文关键字:时区 日期 字符串 javascript 读取      更新时间:2023-09-26

我有一个来自外部源的日期字符串,看起来像这样:

9/25/2011 4:38:40 PM

该源位于PDT时区。

我想创建一个UTC日期的信息,使用date.js。我现在用下面的代码来解析它:

var dateString = '9/25/2011 4:38:40 PM';
var d = Date.parseExact('9/25/2011 4:38:40 PM', 'M/d/yyyy H:m:s tt');

虽然这确实加载日期,但它就像在我的时区一样。我如何告诉date.js我告诉它的日期来自不同的时区?

使用时区格式说明符…

var dateString = '9/25/2011 4:38:40 PM EST';
var d = Date.parseExact(dateString, 'M/d/yyyy H:m:s tt Z');

在日期格式中加入e将表示时区。我还没有测试过这个,但是:

Date.parseExact(dateString + " PDT", "M/d/yyyy H:m:s tt e")

没有考虑到夏令时的变化(PST而不是PDT),但您可以了解要点。

你试过这样的方法吗?:

var dateString = '9/25/2011 4:38:40 PM';
var date = Date.parseExact(dateString, format);
var utc_date = new Date(date.getTime() - (date.getTimezoneOffset() * 60000))