首页 > 解决方案 > 在 JavaScript 中反转 Date.toLocaleString 转换的本机方法?

问题描述

我们已将日期转换为locale string. 例如:

x = (new Date()).toLocaleString()

x 有值

"20.05.2018, 10:21:37"

如何将此字符串处理为Date对象。

我被试了

new Date(x)
Invalid Date

Date.parse(x)
NaN

如果没有外部库,例如moment.js

标签: javascriptdatelocaledate-parsing

解决方案


你可以自己解析它。

const date = "20.05.2018, 10:21:37";
const [first, second] = date.split(',').map(item => item.trim());
const [day, month, year] = first.split('.');
const [hours, minutes, seconds] = second.split(':');

const newDate = new Date(year, month - 1, day, hours, minutes, seconds);
console.log(newDate);

或使用正则表达式

const date = "20.05.2018, 10:21:37";
const m = /^(\d{2})\.(\d{2})\.(\d{4}), (\d{2}):(\d{2}):(\d{2})$/.exec(date);
const newDate = new Date(m[3], m[2] - 1, m[1], m[4], m[5], m[6]);
console.log(newDate);


推荐阅读