这应该很简单,但是我花了数小时浏览文档,但仍然一无所获。 我有这个字符串:
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。
我想念什么?
答案 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时,您需要加载 数据和库。