Конвертировать время utc в местное время указанного формата - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть строка даты в формате dd.MM.yyyy HH:mm:ss, но в ее UTC, который я хочу преобразовать в локальный.Как я могу сделать это с помощью библиотеки моментов?

const dateStr = '20.09.2018 16:12:37';
const format = 'dd.MM.yyyy HH:mm:ss';

// for local time of UTC +3.00 new date Str will be 20.09.2018 19:12:37

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы должны использовать moment.utc(String, String) для разбора вашей строки в режиме UTC

По умолчанию момент анализируется и отображается по местному времени.

ЕслиВы хотите проанализировать или отобразить момент в UTC, вы можете использовать moment.utc() вместо moment()

Затем вы можете использовать local(), чтобы преобразовать его в местное время:

Устанавливает флаг для исходного момента, чтобы использовать местное время для отображения момента вместо времени исходного момента.

Обратите внимание, что, поскольку вы вводите dateStrне в признанном формате ISO 8601 / RCF 2822, вы должны указать формат при его анализе.Токены момента Morover чувствительны к регистру, поэтому вы должны использовать прописные буквы YYYY вместо yyyy для разбора лет и прописные буквы DD для разбора дня месяца, поскольку строчные буквы dd обозначают день недели (понедельник, вторник,и т. д.)

Вот живой пример:

const dateStr = '20.09.2018 16:12:37';
const format = 'DD.MM.YYYY HH:mm:ss';

console.log(moment.utc(dateStr, format).local().format(format));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

Изучите руководство Местный против UTC против смещения , чтобы лучше понять, как работают UTC и режим локали в моменты времени.

0 голосов
/ 27 сентября 2018

Для преобразования из UTC в местное вам нужно использовать moment.local () метод

const dateStr = '20.09.2018 16:12:37';
const format = 'DD.MM.YYYY HH:mm:ss';

var newDate = moment.utc().format(format);
var temp= moment.utc(newDate, format);
var local = moment(temp).local().format(format);

Подробнее об официальной документации

...