javascript - 在 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
?
解决方案
你可以自己解析它。
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);
推荐阅读
- spring - 在 Weblogic 中使用 Java 7 进行 Spring Boot
- html - 将“小部件”样式化为内联并在较小的屏幕下彼此下方
- javascript - JavaScript 输入按钮未按预期工作
- java - 尝试在 JPanel 中添加更多形状时出错
- html - 尝试使用角度可编辑 div 中的文本内容更新变量时,可编辑 div 上的奇怪行为。有什么解释吗?
- python - Python SyntaxError:非 ASCII 字符
- mysql - Mysql:以时间为条件限制插入、更新、删除动作
- inno-setup - Inno Setup - 显示 MsgBox 并单击“确定”返回上一页
- android - 如何初始化 exoplayer 以播放破折号(.mpd)视频
- c++ - 在多个对象中找到一个相同的元素