我想将日期(10/14/2022 8:04 PM
(从America/New_York
时区
转换为Asia/Tokyo
'时区,如下所示
我使用了ISO格式的"亚洲/东京"时区。但我在转换后少了一个小时
,因为08:04:00 p.m. Friday October 14, 2022 in America/New_York
转换为09:04:00 a.m. Saturday October 15, 2022 in Asia/Tokyo.
即使对于其他时区,我也尝试过,但问题是一样的
请帮助我理解此代码中的问题
let d = new Date('2022-10-14T20:04:00.000+09:00')
console.log(
d.toLocaleString('ko-KR', {
timeZone:'Asia/Tokyo',
hour12:false
})
);
结果为:2022. 10. 14. 20시 4분 0초
纽约时区是-4小时(而不是+9小时(
请参阅https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
以美国/纽约的10/14/2022 8:04 PM
为例:
let dateUTC = new Date('2022-10-14T20:04:00.000-04:00')
console.log('Verify America/New_York date value: (where timeZone is -4 hours according DST)')
console.log( 'America/New_York -->', dateUTC.toLocaleString('en-US', { timeZone: 'America/New_York', hour12:true }) )
console.log( 'nAsia/Tokyo -->', dateUTC.toLocaleString('ko-KR', { timeZone: 'Asia/Tokyo', hour12:false }) )
.as-console-wrapper {max-height: 100% !important;top: 0;}
.as-console-row::after {display: none !important;}
正如你所看到的,没有转换要做。只需设置正确的日期值,指示其原始时区偏移(注意可能的夏令时[DST](
然后只需显示您的日期/时间以及您想要的本地值。