Подтвердить что ты не робот

Moment JS - разобрать UTC и преобразовать в Local и наоборот

Я просмотрел документацию и немного запутался в том, как действовать дальше. Есть похожие вопросы, но никто не говорит о разборе конкретных дат, полученных в форматах, и обменивается между локальными и utc-датами.

  • Я получаю локальное datetime, локальный формат datetime и должен генерировать utc datetime из него в определенном формате, и именно так я и должен это делать. moment(dateTime,localDateTimeFormat).utc().format(specifiedFormat);

  • Я получаю utc datetime в определенном формате и должен генерировать специфичное для локали дата и время в определенном формате. Как мне это сделать? moment.utc(utcDateTime, utcDateTimeFormat).toDate(); дает мне дату javascript, я верю. Как мне его форматировать? Должен ли я создать новый момент, используя сгенерированный объект Date?

Еще одна вещь, которую я мог бы сделать, - это получить часовой пояс, а затем форматировать. Интересно, не пойду ли я по неверному пути. Пожалуйста, помогите.

4b9b3361

Ответ 1

  • По пункту 1 - Да, это один из способов сделать это. Однако, если выходной формат будет только отметкой времени UTC ISO8601, вы можете вызвать toISOString непосредственно в первоначальный момент. Поскольку UTC подразумевается выходом, было бы лишним снова вызвать utc().

  • В пункте 2 - Точно так же, как функция utc(), есть также функция local(). Если у вас есть объект moment, вы можете использовать toDate или format или любые другие функции, описанные в документации. Нет, вам не нужно создавать новый момент, используя сгенерированный объект даты.

    moment.utc(utcDateTime, utcDateTimeFormat).local().format(specifiedFormat)
    

    Опять же, здесь есть не один способ сделать что-то. Если utcDateTime уже находится в формате ISO8601 и содержит либо Z, либо смещение, подобное -01:00, то это будет учтено, и вы можете просто сделать это:

    moment(utcDateTime).format(specifiedFormat)
    
  • В последнем пункте, о котором вы говорили о часовых поясах, трудно сказать, что вы просите. Вы должны подробно остановиться на конкретных деталях в новом вопросе.