怎么通过 String.format() 的 %tF 占位符实现不依赖第三方库的日期格式化快捷输出
在Java中,%tF是String.format()自带的日期占位符,可直接输出yyyy-MM-dd格式,无需任何第三方库,使用方便。支持long、Date、Calendar及TemporalAccessor等多种日期类型。其格式固定,不支持自定义分隔符;时区敏感性取决于输入对象的类型,并且不能直接格式化字符串。

基本用法示例
用法很简单,直接传入支持的时间对象就行: - `String.format("%tF", System.currentTimeMillis())` → 输出 `"2024-06-15"` - `String.format("%tF", new Date())` → 输出 `"2024-06-15"` - `String.format("%tF", LocalDate.now())` → 输出 `"2024-06-15"` - `String.format("%tF", LocalDateTime.now())` → 同样只取日期部分,输出 `"2024-06-15"` 可以看到,无论传入什么类型,最终输出的都是统一的 `yyyy-MM-dd` 格式,很省事。注意事项与常见陷阱
有几个地方得特别留意。 **不支持自定义分隔符或局部格式**:`%tF` 固定输出 `yyyy-MM-dd`,没法改成 `yyyy/MM/dd` 或者 `dd.MM.yyyy`。如果你有这种需求,就得用 `%tY-%tm-%td` 手动拼,或者干脆上 `ja va.time.format.DateTimeFormatter`。 **时区敏感性取决于输入类型**: - 传 `long` 或 `Date`:按 JVM 的默认时区转成本地日期 - 传 `LocalDate`:没有时区概念,直接输出 - 传 `ZonedDateTime` 或 `Instant`:会先转换到系统默认时区,再取日期部分 **不能单独对字符串解析后格式化**:这一点很关键——`%tF` 不接受像 `"2024-01-01"` 这样的纯字符串。如果手头只有字符串,必须先解析(比如用 `LocalDate.parse()`),再传进去。替代方案(当 %tF 不够用时)
如果 `%tF` 满足不了你的格式要求,又想避免引入第三方库,可以组合其他 `%t` 占位符: - `String.format("%tY年%tm月%td日", LocalDate.now())` → 输出 `"2024年06月15日"` - `String.format("%td/%tm/%tY", Calendar.getInstance())` → 输出 `"15/06/2024"` - `String.format("%tF %tR", new Date())` → 输出 `"2024-06-15 14:30"`(日期加 24 小时制时间) 写多参数格式化的时候要记住:所有 `%tX` 必须共用同一个时间参数,不能写成 `String.format("%tF", d1, "%tR", d2)`。每个 `%t` 都消耗一个参数,按顺序对应,这一点很容易踩坑。
Adobe Acrobat Pro 是面向办公、法务、财务、教育及出版用户的专业PDF处理软件,可在Mac上创建、编辑、转换、合并和保护文档,并提供OCR文字识别、表单、批注、内容比较、敏感信息遮盖及电子签名功能。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。
AutoCAD 是 Autodesk 推出的专业计算机辅助设计软件,Windows 版支持精确二维绘图、三维实体与曲面建模、图纸标注、布局发布和任务自动化,并包含多套行业专业化工具组合,适用于建筑、机械、电气、工程建设及制造设计人员。














