Регулярное выражение для преобразования 2020-03-02T13: 40: 03.000Z в ДД / ММ / ГГГГ ЧЧ: ММ: СС - PullRequest
1 голос
/ 21 марта 2020

Рассмотрим DateTime 2020-03-02T13:40:03.000Z

Я хочу преобразовать его в 02-03-2020 13:40:03.

Следующая функция преобразует YYYYMMDD в ДД / ММ / ГГГГ.

  const convertDateToDDMMYYYY = (date) => {
    const newDate = date.replace(/(\d{4})(\d{2})(\d{2})/g, '$1-$2-$3');
    return newDate;
  }

Как мы можем игнорировать T и суффикс .000Z?

Ответы [ 2 ]

1 голос
/ 21 марта 2020

Вы можете достичь желаемого результата, используя объект Date, а затем извлекая каждую из частей:

const date = new Date('2020-03-02T13:40:03.000Z');

const sdate =
  [('0' + date.getUTCDate()).slice(-2),
   ('0' + (date.getUTCMonth() + 1)).slice(-2),
   date.getUTCFullYear()
  ].join('-') +
  ' ' +
  [('0' + date.getUTCHours()).slice(-2),
   ('0' + date.getUTCMinutes()).slice(-2),
   ('0' + date.getUTCSeconds()).slice(-2)
  ].join(':');

console.log(sdate);
1 голос
/ 21 марта 2020

Вы можете использовать

.replace(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}:\d{2}:\d{2})\.\d+Z$/, '$3-$2-$1 $4')

См. Демоверсию regex

  • ^ - начало строки
  • (\d{4}) - Группа 1: год
  • -(\d{2})- - дефис, Группа 2: месяц, затем дефис
  • (\d{2}) - Группа 3: день
  • T - a T (только что сопоставленное, но не захваченное!)
  • (\d{2}:\d{2}:\d{2}) - Группа 4: часть времени
  • \. - точка
  • \d+ - 1+ цифр
  • Z - Z char
  • $ - конец строки.

См. Демонстрационную версию JS:

const convertDateToDDMMYYYY = (date) => {
    return date.replace(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}:\d{2}:\d{2})\.\d+Z$/, '$3-$2-$1 $4');
  }

console.log(convertDateToDDMMYYYY("2020-03-02T13:40:03.000Z"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...