JavaScript日期格式化有三种原生方式:1. toLocaleDateString/timeString实现本地化输出;2. 手动拼接+padStart控制固定格式;3. Intl.DateTimeFormat提供国际化、高灵活性方案。

JavaScript 中日期时间对象的基础格式化,核心是把 Date 实例转成易读、符合场景的字符串。不依赖第三方库,原生就有三种实用方式:用内置方法快速本地化输出、手动拼接控制细节、或借助现代标准 API 实现兼顾灵活与国际化的格式。
直接调用 toLocaleDateString / toLocaleTimeString
这是最轻量、最贴近用户系统习惯的方式,适合展示给终端用户看的日期或时间。
- 只取日期:`new Date().toLocaleDateString('zh-CN')` → 2026/9/5;用 `'en-US'` 则得 9/5/2026
- 只取时间:`new Date().toLocaleTimeString('zh-CN')` → 下午12:18:00
- 日期+时间一起:`new Date().toLocaleString('zh-CN')` → 2026/9/5 下午12:18:00
- 可传入选项对象精确控制,比如强制两位月份和日期:
`toLocaleDateString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric' })` → 09/05/2026
手动拼接 + padStart 补零
适合需要固定格式(如日志、接口参数)、且不关心地区差异的场景,完全可控,无兼容性问题。
- 关键点:`getMonth()` 返回 0–11,记得加 1;所有数字用 `.padStart(2, '0')` 补零
- 示例格式 YYYY-MM-DD HH:mm:ss:
const d = new Date();<br>`${d.getFullYear()}-${(d.getMonth() + 1).toString().padStart(2, '0')}-${d.getDate().toString().padStart(2, '0')} ` +<br>`${d.getHours().toString().padStart(2, '0')}:${d.getMinutes().toString().padStart(2, '0')}:${d.getSeconds().toString().padStart(2, '0')}`→ 2026-09-05 12:18:00
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
使用 Intl.DateTimeFormat(推荐用于正式项目)
这是标准、健壮、支持多语言和时区的现代方案,比 toLocaleString 更灵活,也比手动拼接更可靠。
- 创建一次实例,可重复使用,性能好
- 自动处理补零、AM/PM、星期名、农历等本地化细节
- 示例:中文环境下的 24 小时制完整时间
const formatter = new Intl.DateTimeFormat('zh-CN', {<br> year: 'numeric',<br> month: '2-digit',<br> day: '2-digit',<br> hour: '2-digit',<br> minute: '2-digit',<br> second: '2-digit',<br> hour12: false<br>});<br>formatter.format(new Date())→ 2026/09/05 12:18:00
补充说明:避免踩坑
注意几个常见误区:
- Date 构造时传字符串,优先用 ISO 格式(2026-09-05T12:18:00),避免解析歧义
- 不要直接用 `date + ''` 或 `date.toString()`,输出格式不可控、不统一
- 如果需 UTC 时间,用 `getUTCFullYear()` 等方法,或在 Intl 配置中指定 `timeZone: 'UTC'`

















