В настоящее время я использую момент js в своем приложении и не могу понять, как преобразовать время эпохи в дату по Гринвичу. Предоставление моего кода ниже:
click: (event) => {
console.info(moment.utc(event.point.category).toDate());
}
event.point.category
предоставляет время эпохи, которое я хочу преобразовать в объект даты и времени по Гринвичу, но приведенный выше код преобразует его в объект даты местного часового пояса.
Например 1606262400000 преобразуется во вторник, 24 ноября 2020 г., 19:00:00 по Гринвичу-0500 (восточное стандартное время) вместо даты по Гринвичу, которая приходится на среду, 25 ноября 2020 г., 00:00.
@ParikshithKedilayaM Спасибо за ваш комментарий, но format () обеспечивает вывод в виде строки, и я ищу объект даты и времени javascript.
Я считаю, что все, что вам не хватает, это toUTCString()
.
Временная метка эпохи будет одинаковой для вторника, 24 ноября 2020 г., 19:00:00 GMT-0500 (восточное стандартное время), и для среды, 25 ноября 2020 г., 00:00:00 по Гринвичу.
click: (event) => {
console.info(moment.utc(event.point.category).toDate().toUTCString());
}
Чтобы остаться объектом Date
, используйте moment.utc().format()
Я попробовал, как вы предложили, но .format() возвращает вывод в виде строки «2020-11-25T00:00:00Z». Я ищу объект даты и времени по Гринвичу.
@rahul В этом случае я настоятельно рекомендую вам использовать другие дополнительные библиотеки, такие как momentjs.com/timezone или moment.github.io/luxon, чтобы помочь. Я лично использую Luxon, по сути, как moment.js и moment-timezone, упакованные вместе.
Вы должны получить смещение (UTC) (в минутах) клиента для правильного времени
click: (event) => {
const offset = new Date().getTimezoneOffset();
const targetTime = moment.utc(event.point.category).toDate();
const offsetTime = new Date(targetTime.getTime() + offset * 60 * 1000);
console.info(offsetTime);
}
Вы можете попробовать что-то вроде этого,
click: (event) => {
console.info(moment(moment.utc(event.point.category).toISOString()).utc());
}
Из документации момента:
moment.utc(event.point.category).format()
делает то, что вы ожидаете. momentjs.com/guides/#/parsing/local-utc-zone