gpt4 book ai didi

javascript - 如何将时间从 UTC 转换为 "Pacific/Easter"?

转载 作者:行者123 更新时间:2023-11-30 14:30:37 26 4
gpt4 key购买 nike

我从服务器获取的时间为“19:30”,但需要将其转换为“太平洋/复活节时区”。

我试过类似的东西

 let t = "19:30:00";
let utc = moment.utc(t);
let z = moment(utc).utcOffset(-300).format('HH:mm');

但我哪里出错了。

我在我的开发应用程序版本中看到它正在转换为 14:30,就像 -5:00 小时。

那么,我怎样才能得到类似的结果呢?

这是我尝试过的其他东西

let t = "19:30:00"; 
let tt = moment.tz(t, "UTC");
let nt = tt.clone().tz("Pacific/Easter");

我也得到 nt 为“19:30:00”。所以,它根本没有转换

这是一个似乎有效的方法。但它没有显示正确的结果

let t = "19:30:00";
let utc = moment.utc(t, 'HH:mm:ss');
let z = utc.tz('Pacific/Easter').format('HH:mm');
console.log(z);

它应该显示结果为 19:30 -5 小时,应该是 14:30,但结果显示为 13:30。所以,有人知道为什么会这样吗??

最佳答案

你必须使用 tz()从时刻时区开始运行。

由于您的输入 (19:30:00) 不是 ISO 8601/RFC 2822 可识别的格式,您必须 parse它使用 moment.utc(String, String)传递 'HH:mm:ss' 作为第二个参数。

然后您可以使用 tz() 将时刻对象转换为给定时区.

请注意,即使您只提供时间,您也是在创建一个包含日期的时刻对象。作为Default文档部分指出:

You can create a moment object specifying only some of the units, and the rest will be defaulted to the current day, month or year, or 0 for hours, minutes, seconds and milliseconds.

'Pacific/Easter' 使用 Daylight Saving Time (查看完整信息 here)因此转换取决于日期和 DST。

如果你想使用固定偏移量(没有DST),你可以使用utcOffset() :

Setting the UTC offset by supplying minutes. Note that once you set an offset, it's fixed and won't change on its own (i.e there are no DST rules).

If the input is less than 16 and greater than -16, it will interpret your input as hours instead.

这里是一个活生生的例子:

let t = "19:30:00";
let utc = moment.utc(t, 'HH:mm:ss');
let z = utc.tz('Pacific/Easter').format('HH:mm');
console.log(z);

// DST
console.log( moment.utc('2018-09-01 19:30:00').tz('Pacific/Easter').format('HH:mm') );
// No DST
console.log( moment.utc('2018-06-01 19:30:00').tz('Pacific/Easter').format('HH:mm') );
// Fixed offset
console.log( moment.utc('19:30:00', 'HH:mm:ss').utcOffset(-5).format('HH:mm') );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.17/moment-timezone-with-data-2012-2022.min.js"></script>

关于javascript - 如何将时间从 UTC 转换为 "Pacific/Easter"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51246019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com