date.parse()是javascript中将日期字符串转为utc时间戳的静态方法,仅支持iso 8601格式最可靠,非标准格式存在兼容性与歧义风险,建议配合校验或使用new date()、date-fns等替代方案。

Date.parse() 是 JavaScript 中用于将日期字符串转换为时间戳(毫秒数)的静态方法。它不创建 Date 对象,只返回从 1970 年 1 月 1 日 00:00:00 UTC 到该日期的毫秒数。
支持的标准格式(推荐使用)
ECMAScript 规范明确要求支持 ISO 8601 格式,这是最可靠、跨浏览器兼容性最好的方式:
- 完整带时区:`Date.parse("2023-10-05T14:48:00.000Z")` → 返回对应 UTC 时间戳
- 简写 UTC:`Date.parse("2023-10-05")` → 默认解析为当日 00:00:00 UTC
- 带本地时区偏移:`Date.parse("2023-10-05T14:48:00+08:00")` → 正确处理时区
非标准格式风险高,不建议依赖
像 `"10/05/2023"`、`"05-Oct-2023"` 或 `"2023/10/05 14:48"` 这类格式:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 行为因浏览器而异(Chrome 可能接受,Firefox 或 Safari 可能返回
NaN) - 不同地区对 `MM/DD/YYYY` 和 `DD/MM/YYYY` 解读冲突
- 没有明确时区信息时,各引擎可能按本地时区或 UTC 处理,结果不可控
如何安全使用 Date.parse
实际开发中建议配合校验和降级逻辑:
- 先用
Date.parse(str)尝试解析 - 检查返回值是否为有效数字:
!isNaN(timestamp) && isFinite(timestamp) - 若失败,再考虑用正则拆分或第三方库(如 date-fns 的
parseISO或parse)处理自定义格式 - 避免直接把用户输入或后端未规范化的日期字符串传给
Date.parse
替代方案更可控
如果需要解析非 ISO 格式,优先考虑:
-
new Date(year, monthIndex, day, hour?, minute?, second?, ms?)—— 显式构造,无歧义 - 使用
Intl.DateTimeFormat配合parse(需额外解析逻辑) - 引入轻量库如
date-fns/parse或dayjs,支持自定义格式字符串
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










