这个问题有点模糊。我会尽力解释这一点。首先,您应该了解如何使用moment-timezone。根据此处的答案 TypeError: moment().tz is not a function,您必须从moment-timezone导入 moment而不是默认 moment(当然,您必须先 npm install moment-timezone !)。为清楚起见,
const moment=require('moment-timezone')//import from moment-timezone
现在为了使用时区功能,请使用moment.tz("date_string/moment()","time_zone")(访问https://momentjs.com/timezone/了解更多详细信息)。此函数将返回具有特定时区的时刻对象。为清楚起见,
var newYork= moment.tz("2014-06-01 12:00", "America/New_York");/*this code will consider NewYork as the timezone.*/
现在,当您尝试使用时刻的toDate()(ISO 8601 格式转换)转换 newYork(时刻对象)时,您将获得英国格林威治的时间。有关更多详细信息,请阅读这篇关于 UTC 的文章https://www.nhc.noaa.gov/aboututc.shtml。但是,如果您只想要这种格式的本地时间(根据此示例,纽约时间),只需将方法.utc(true)与arg true一起添加到您的 moment 对象。为清楚起见,
newYork.toDate()//will give you the Greenwich ,UK, time.
newYork.utc(true).toDate()//will give you the local time. according to the moment.tz method arg we specified above, it is 12:00.you can ofcourse change this by using moment()
简而言之,moment.tz 会考虑您指定的时区,并将您的本地时间与格林威治的时间进行比较,从而为您提供结果。我希望这很有用。