将2020-03-02T13:40:03.000Z转换为DD / MM / YYYY HH:MM:SS的正则表达式

时间:2020-03-20 23:48:15

标签: javascript regex date

考虑DateTime 2020-03-02T13:40:03.000Z

我想将其转换为02-03-2020 13:40:03

以下功能将YYYYMMDD转换为DD / MM / YYYY。

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

我们如何忽略后缀T.000Z

2 个答案:

答案 0 :(得分:1)

您可以使用

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

请参见regex demo

  • ^-字符串的开头
  • (\d{4})-第1组:年份
  • -(\d{2})--连字符,第2组:月份,然后是连字符
  • (\d{2})-第3组:每天
  • T-T(正好匹配,未捕获!)
  • (\d{2}:\d{2}:\d{2})-第4组:时间部分
  • \.-一个点
  • \d+-1个以上数字
  • Z-一个Z字符
  • $-字符串的结尾。

请参阅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"))

答案 1 :(得分:1)

您可以通过使用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);