商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 怎么掌握 LocalDateTime 的格式化输出

怎么掌握 LocalDateTime 的格式化输出

  发布于2026-07-10 阅读(0)

扫一扫,手机访问

掌握 LocalDateTime 的格式化输出,关键其实就在两件事上:用对 DateTimeFormatter,以及记牢 Pattern 字符的大小写含义。不用额外引入第三方库,Ja va 8 自带这套方案就已经足够原生、线程安全且语义清晰——这也是日常开发中绕不开的基础能力。

怎么掌握 LocalDateTime 的格式化输出

用对 DateTimeFormatter 类

SimpleDateFormat 早该退休了——它既非线程安全,又容易在并发环境里搞出诡异错误。LocalDateTime 必须搭配 DateTimeFormatter 使用,这才是正确的姿势:

  • 内置常量可以直接拿来就用,比如 DateTimeFormatter.ISO_LOCAL_DATE_TIME,输出效果是 2026-04-15T10:04:22,简洁又规范。
  • 需要自定义格式?统一走 DateTimeFormatter.ofPattern("xxx"),比如 "yyyy-MM-dd HH:mm:ss" 是最常见的日志时间模板。
  • 格式器最好声明成 static final 常量,避免每次调用都重新创建,性能会好很多。

记牢常用 Pattern 字符含义

大小写敏感这一条,不知道坑了多少人。几个最容易搞混的地方,务必记清楚:

  • yyyy 表示四位年份(比如 2026),千万别写成大写的 YYYY——那是“周所属年”,语义完全不同,遇到跨年周容易翻车。
  • MM 是两位月份(比如 04),不是 mm(那是分钟)。
  • dd 是当月第几天(比如 15),而 DD 是当年第几天,差远了。
  • HH 是 24 小时制(例如 10 点),hh 则是 12 小时制,通常需要配合 a 才能显示 AM/PM。
  • mm 分钟、ss 秒、SSS 毫秒(三位),各自位置不能乱。

按场景选典型 Pattern 示例

不用死记硬背,直接按输出需求套用就好。这里列几个高频场景:

  • 标准日志时间:"yyyy-MM-dd HH:mm:ss" → 输出 2026-04-15 10:04:22
  • 中文展示:"yyyy年MM月dd日 HH时mm分" → 2026年04月15日 10时04分
  • 文件名友好:"yyyyMMdd_HHmmss" → 20260415_100422
  • 只取日期或只取时间:"yyyy-MM-dd""HH:mm:ss"
  • 兼容 ISO 标准的 T 分隔符:"yyyy-MM-dd'T'HH:mm:ss"

注意解析时也要用同一格式器

格式化是把 LocalDateTime 转成字符串,解析相反,两者必须使用同一个 Pattern,否则会抛 DateTimeParseException

  • 格式化:localDateTime.format(formatter)
  • 解析:LocalDateTime.parse("2026-04-15 10:04:22", formatter)
  • 如果待解析的字符串里包含毫秒或时区信息,Pattern 和输入必须严格匹配,差一个字符都不行——这一点在对接外部接口时尤其容易踩坑。
本文转载于:https://www.php.cn/faq/2396527.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注