【问题标题】:Convert a specific date into Sydney timezone将特定日期转换为悉尼时区
【发布时间】:2019-03-17 00:30:14
【问题描述】:

我正在尝试了解初始日期和当前日期之间的差异。我明白当我得到这样的日期时new Date("Feb 17, 2009 12:20:47"); 它给我的时区是我本地计算机上的时区。

我想知道如何获取悉尼时区的日期。

var sydneyTime = new Date().toLocaleString("en-US", {timeZone: "Australia/Sydney"});
initDate = new Date("Jan 27, 2009 12:50:37");
rightNow = new Date(sydneyTime);

问题:如何将initDate 转换为悉尼时间?

【问题讨论】:

  • 这个问题没有意义,因为“2009 年 1 月 27 日 12:50:37”没有时区,将其转换为任何时区就像添加适当的时区名称或缩写一样简单.

标签: javascript date timezone


【解决方案1】:

这将与您的第一个字符串相同。不一定只有new Date() 也可以是定义的日期。

let s = 'Jan 27, 2009 12:50:37';
// Parse as local
let d = new Date(s);
let sydneyTime = d.toLocaleString(undefined, {timeZone: "Australia/Sydney"});

console.log(`Original date in my location: ${s}\n\
Equivalent Sydney time      : ${sydneyTime}`);

【讨论】:

  • 这会将字符串解析为主机系统设置的任何时区的本地时间,然后在悉尼该日期和时间的任何时区生成等效时间。它将在具有不同时区偏移的每个主机上产生不同的结果。
  • @RobG 但作者在他的问题中指出,他确实希望将他的当地日期与悉尼同等日期进行比较。
  • 我很高兴你能解读出我无法解读的意思。解析非标准字符串的常见警告适用。 ;-)
  • @RobG 感谢您将我的代码转换为 es6 语法,我最初并没有这样做以使代码接近 OP 的代码
猜你喜欢
  • 1970-01-01
  • 2014-12-27
  • 2012-07-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2017-02-20
  • 1970-01-01
  • 2016-03-14
相关资源
最近更新 更多