Создать новый объект Date с помощью moment.js
У меня есть строка:
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 ответа
Это сработает, если ваш объект даты является экземпляром момента:
moment.tz(moment(date), 'Asia/Tokyo').format('YYYY/MM/DD HH:MM Z')
Часовые пояса трудно получить право. Я думаю, что простое и несколько идиоматическое решение заключается в следующем:
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');
Конечно, вы бы написали это в более сжатой форме.