使用moment.js创建新的Date对象

时间:2019-01-16 07:33:29

标签: javascript momentjs moment-timezone

我有一个字符串:

date =  "2019/1/16 00:00 +0900"

我在纽约(时区-5),我想创建一个Date对象:

Wed Jan 16 2019 00:00:00 GMT+0900

我无法使用javascript进行转换。它将返回时区-5。 我使用moment.js:

moment.tz(date, 'Asia/Tokyo').format('YYYY/MM/DD HH:MM');

但是,这是不对的。请你帮助我好吗。非常感谢。

2 个答案:

答案 0 :(得分:1)

如果您的日期对象是一个时刻实例,它将起作用:

moment.tz(moment(date), 'Asia/Tokyo').format('YYYY/MM/DD HH:MM Z')

答案 1 :(得分:0)

时区很难正确设置。我认为这是一个易于遵循且有些惯用的解决方案:

const date = "2019/1/16 00:00 +0900";

// parse in any timezone
const dateMoment = moment(date); 

// deliberately set the timezone in which the moment is interpreted in
const timezonedMoment = dateMoment.tz('Asia/Tokyo'); 

// format the moment
const formattedDate = dateMoment.format('YYYY/MM/DD HH:MM z');

当然,您将以更简洁的形式编写该代码。