You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用new Date()解析失败,如何将非标准日期字符串转为datetime对象?正则方案咨询

提取非标准日期字符串中的有效时间并转换为Date对象

可以通过正则表达式提取字符串里的核心日期时间片段,再拼接成JavaScript的Date对象可解析的标准格式,具体实现如下:

正则匹配与转换代码

const rawDateTimeStr = "Today, Fri May 12 2023 at 07:00:00, we go swimming";
// 匹配核心日期时间部分的正则
const dateTimeRegex = /(\w{3} \w{3} \d{1,2} \d{4}) at (\d{2}:\d{2}:\d{2})/;
const matchResult = rawDateTimeStr.match(dateTimeRegex);

if (matchResult) {
    // 拼接成标准的可解析格式
    const validStr = `${matchResult[1]} ${matchResult[2]}`;
    const dateObj = new Date(validStr);
    console.log(dateObj); // 输出:Fri May 12 2023 07:00:00 GMT+xxx (对应时区)
} else {
    console.log("未找到有效日期时间内容");
}

正则说明

  • (\w{3} \w{3} \d{1,2} \d{4}):捕获星期缩写+月份缩写+日期+年份的片段,比如示例中的Fri May 12 2023
  • at :匹配字符串中连接日期和时间的固定标识
  • (\d{2}:\d{2}:\d{2}):捕获时分秒格式的时间片段,比如示例中的07:00:00

扩展适配

如果你的日期字符串格式有变动,可调整正则规则:

  • 月份支持全称:把\w{3}改为\w{3,9}
  • 兼容12小时制(带AM/PM):将时间匹配部分修改为(\d{1,2}:\d{2}:\d{2} [AP]M)

内容的提问来源于stack exchange,提问作者Kim Mỹ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 22:52:48