Java中用LocalDateTime.of(date, time)可直接组合LocalDate和LocalTime生成不可变LocalDateTime实例,参数顺序固定、不涉及时区;等效写法包括localDate.atTime(localTime)和localTime.atDate(localDate);输入需合法,否则抛DateTimeException。

Java中用LocalDateTime.of()组合LocalDate和LocalTime非常直接,核心就是传入一个日期对象和一个时间对象,返回一个新的LocalDateTime实例。
基本用法:LocalDateTime.of(date, time)
这是最常用、最清晰的方式:
- 参数顺序固定:先
LocalDate,再LocalTime - 返回值是不可变的
LocalDateTime,原date和time不受影响 - 不涉及时区,结果仍是“本地”日期时间(无UTC偏移)
其他等效方式
除了of()静态工厂方法,还有两种常用替代写法,语义略有不同但效果一致:
-
localDate.atTime(localTime):从日期出发,“加上”一个时间点 -
localTime.atDate(localDate):从时间出发,“绑定”到某一天
例如:LocalDate.now().atTime(LocalTime.of(9, 0)) 和 LocalTime.of(9, 0).atDate(LocalDate.now()) 都会生成当天上午9点的LocalDateTime。
立即学习“Java免费学习笔记(深入)”;
注意事项
组合过程不做校验,需确保输入合法:
- 如果
LocalDate是2025-02-30(非法日期),会在构造时抛出DateTimeException - 如果
LocalTime是25:00:00,同样会立即报错 - 不处理跨日逻辑——比如
LocalTime.of(23, 30)与LocalDate.of(2025, 1, 1)组合,结果就是2025-01-01T23:30:00,不会自动推到次日
典型使用场景
常见于业务逻辑中需要拼装完整时间点的地方:
- 设置某天的营业开始/结束时间(如“2026-07-13 的 08:30 开始营业”)
- 构造定时任务触发时刻(“今天下午3点执行”)
- 解析用户分别输入的日期和时间字段后合并


















