Date.parse()仅可靠解析ISO 8601或RFC 2822格式字符串,返回自1970-01-01 UTC起的毫秒数,非法格式返回NaN,需校验结果,非标输入推荐用new Date(str).getTime()或专用库解析。

Date.parse() 可以将符合标准格式的日期字符串解析为时间戳(毫秒数),但它的行为有明确限制和常见陷阱,不能盲目传入任意字符串。
支持的标准格式
只有符合 ISO 8601(如 "2023-10-05T14:48:00")或 RFC 2822(如 "Thu, 05 Oct 2023 14:48:00 GMT")的字符串才能被可靠解析。浏览器也会尝试兼容一些常见写法,例如:
-
"2023-10-05"(自动补全为当天 00:00:00 UTC) -
"2023/10/05"(多数浏览器支持,但非标准,不推荐) -
"Oct 5, 2023"(依赖本地化,行为不一致)
返回值是时间戳(毫秒)
Date.parse() 返回的是从 1970-01-01 00:00:00 UTC 到该日期的毫秒数。例如:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
解析失败会返回 NaN
如果字符串格式不被识别(比如 "2023-10-05 12:00" 缺少 T 或时区),结果就是 NaN。务必检查返回值:
立即学习“Java免费学习笔记(深入)”;
if (isNaN(Date.parse(str))) { /* 处理错误 */ }- 不要直接用
new Date(Date.parse(str)),除非已确认解析成功
更稳妥的替代方案
对非标准输入,建议优先使用 new Date(str).getTime()(效果类似但构造 Date 实例更直观),或用专门库(如 date-fns 的 parseISO、dayjs)做严格解析。自定义解析逻辑时,应先标准化字符串再调用 Date.parse()。

















