如何将 UTC 格式的字符串格式化为 Moment 上配置的时区

How to format a string in UTC to the configured timezone on Moment

我有以下字符串,采用 UTC 格式:

2022-02-01T00:00:00Z

我已经配置了我的时区,所以我不想mess/call .tz()

我知道这个字符串是 UTC,但我无法从 UTC 转换为定义的时区,在这个例子中是 pacific/wallis

我尝试了很多东西,如

const utc = moment.utc('2022-02-01T00:00:00Z').toDate()
const inConfiguredTimeZone = utc.format()

我的愿望是获得此时间戳 2022-02-01T00:00:00Z 并已转换为 Moment

上定义的时区

我需要告诉时刻“这个字符串是UTC,请给我定义时区的转换时间戳”

如果您只想在当前时区(由您计算机的时间设置决定)格式化 UTC 时间戳,只需使用

let s = moment("2022-02-01T00:00:00Z").format();

如果您当前所在的时区的 UTC 偏移量为 +12 小时(例如 pacific/wallis),这将生成类似 2022-02-01T12:00:00+12:00 的字符串;如果您当前处于 2022-02-01T01:00:00+01:00在 UTC 偏移量为 +1 小时的时区中(如 europe/berlin)

如果您想将其转换为特定时区,请使用

let s = moment("2022-02-01T00:00:00Z").tz("pacific/wallis").format();

这将产生 2022-02-01T12:00:00+12:00,无论您当前的时区如何。