为什么Moments TimeZone不应用给定时区



我在"时机"网站上查看Chrome开发人员工具:https://momentjs.com/timezone/

我执行:

moment(new Date(2011, 9, 16, 12)).tz('America/Los_Angeles').toDate()

结果仍然是:

星期日10月16日2011年10:00:00 GMT 0200(中欧日光时间)

为什么Momment timezone不使用给定时区,而我得到Central European Daylight Time

创建new Date(2011, 9, 16, 12)时,它将获得 10月16日 th 2011 at 12:00 在浏览器的时区域中。然后tz将其转换为指定的时区,toDate()将其转换回日期对象(使用浏览器的时区)。

如果您想创建 10月16日 th 2011 at 12:00 在洛杉矶时区,无需使用new Date。您可以直接使用moment.tz

moment.tz('2011-10-16 12:00', 'America/Los_Angeles')

输出将是:

太阳2011年10月16日12:00:00 GMT-0700

您还可以创建日期传递值而不是字符串(检查文档以查看所有选项):

moment.tz([2011, 9, 16, 12], 'America/Los_Angeles')
moment.tz({ year: 2011, month: 9, day: 16, hour: 12 }, 'America/Los_Angeles')

以上所有日期都产生相同的日期( 10月16日 th 2011 at 12:00 在洛杉矶时区)。

请注意,值是零索引(一月为零),而在字符串中,几个月为1个(一月为 1)。


在上面的调用toDate()也将将日期/时间转换为浏览器的默认时区。

相关内容

  • 没有找到相关文章

最新更新