矩tz转换字符串

时间:2018-09-29 00:47:36

标签: momentjs moment-timezone

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

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”

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

我希望能够打印“ Sep 29,2018,16:50” ,它是将utc中的time转换为pst。

我想念什么?

1 个答案:

答案 0 :(得分: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>

请确保您已加载诸如per the docs之类的时区数据:

  

在Node.js中,所有数据均已预加载。无需其他代码   用于加载数据。

     

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