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

如何将toLocaleString生成的英格式日期字符串转回new Date对象?

解决将DD/MM/YYYY HH:mm:ss格式字符串转回Date对象的问题

直接调用new Date(localDate)失败的核心原因是:浏览器对非ISO标准的日期字符串解析规则不统一,DD/MM/YYYY格式会被部分浏览器误判为MM/DD/YYYY(美式日期格式),导致日期逻辑错误或返回无效日期。以下是两种可靠的解决方法:

方法一:手动拆分解析(兼容性最优)

通过拆分字符串提取日、月、年、时、分、秒的数值,直接传入Date构造函数(注意月份是0索引,需减1):

const localDate = "18/03/2023 08:45:47";
// 拆分日期与时间部分
const [dateSegment, timeSegment] = localDate.split(" ");
// 提取日、月、年并转换为数字
const [day, month, year] = dateSegment.split("/").map(Number);
// 提取时、分、秒并转换为数字
const [hours, minutes, seconds] = timeSegment.split(":").map(Number);
// 构造Date对象(月份需减1,因为Date的月份是0-11)
const restoredDate = new Date(year, month - 1, day, hours, minutes, seconds);

方法二:转换为ISO标准格式(代码更简洁)

将DD/MM/YYYY HH:mm:ss重构为浏览器普遍支持的YYYY-MM-DDTHH:mm:ss格式,再传入Date构造函数:

const localDate = "18/03/2023 08:45:47";
// 正则替换为ISO兼容格式
const isoFormatted = localDate.replace(/(\d{2})\/(\d{2})\/(\d{4}) (\d{2}:\d{2}:\d{2})/, "$3-$2-$1T$4");
const restoredDate = new Date(isoFormatted);

内容的提问来源于stack exchange,提问作者Atal Shrivastava

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 08:12:27