0

这应该很简单,但我花了几个小时查看文档,但仍然一无所获。我有这个字符串:

var time = "2018-09-29 23:50:21"

这次是 UTC,尽管它没有这么说,但我知道它是。

我想用 .tz 将其转换为 PST (America/Los_Angeles)

我试过了:

moment(time).tz('America/Los_Angeles').format(MomentDefaults.DateTime);

我收到“2018 年 9 月 29 日 23:50”

我尝试了许多以不同方式失败的不同组合。

我希望能够打印“2018 年 9 月 29 日,16:50”,它time以 utc 转换为 pst。

我错过了什么?

4

1 回答 1

1

你可以将你的time字符串更改为实际有效的 ISO UTC 字符串,因为你确定它是?

var time = "2018-09-29T23:50:21.000Z"

console.log(moment(time).tz('America/Los_Angeles').format())  //16:50
console.log(moment(time).tz('America/New_York').format())     //19:50
<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.21/moment-timezone-with-data.min.js"></script>

确保您根据文档加载了时区等数据:

在 Node.js 中,所有数据都是预加载的。加载数据不需要额外的代码。

在浏览器中使用 Moment Timezone 时,您需要加载数据以及库。

于 2018-09-29T01:17:55.540 回答