首页 > 解决方案 > 将 2020-03-02T13:40:03.000Z 转换为 DD/MM/YYYY HH:MM:SS 的正则表达式

问题描述

考虑日期时间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;
  }

我们怎么能忽略Tand.000Z后缀呢?

标签: javascriptregexdate

解决方案


您可以使用

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

查看正则表达式演示

  • ^- 字符串的开始
  • (\d{4})- 第一组:年
  • -(\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"))


推荐阅读