Moment.js 时区转换不正确

Moment.js Timezone is not converting properly

我正在尝试将一些日期和时间转换为不同的时区,但 Moment.js 为此无法正常运行。我已经通读了文档并且看到了很多示例,看起来我做的是正确的,但是它没有正确地将洛杉矶时间转换为纽约时间。我做错了什么?

JS

var timeSelected = 2020/12/04 17:00;
var clientTz = America/Los_Angeles
var presenterTz = America/New_York

var momentTz = moment.tz(timeSelected, clientTz).tz(presenterTz).format( 'YYYY/MM/DD HH:mm' );

检查下面。我做了一些更改并添加了适当的库。 SOmetime 如果您没有包含 moment-timezone-with-data.js 这对某些时区不起作用。我已经更改了输入格式,如果您想将格式更改为您必须使用的问题格式

.tz(timeSelected, 'YYYY/MM/DD HH:mm', clientTz)

var timeSelected = '2020-12-04 17:00';
var clientTz = 'America/Los_Angeles'
var presenterTz = 'America/New_York'

var momentTz = moment.tz(timeSelected, clientTz).tz(presenterTz).format( 'YYYY/MM/DD HH:mm' );

console.log(momentTz)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.32/moment-timezone.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.32/moment-timezone-with-data.js"></script>

const timeSelected = '2020/12/04 17:00';
const clientTz = 'America/Los_Angeles';
const presenterTz = 'America/New_York';

const momentTz = moment
    .tz(timeSelected, 'YYYY/MM/DD HH:mm', clientTz)
    .tz(presenterTz)
    .format('YYYY/MM/DD HH:mm');

moment.tz 函数中的时间和时区之间可能存在参数。如果不是默认的,则必须传递源字符串的格式。