有没有更好/更简单的方法来构建 LocalDateTime
表示今天早上 6 点的对象?
LocalDateTime todayAt6 = LocalDateTime.now().withHour(6).withMinute(0).withSecond(0).withNano(0);
不知何故,当我只想说 now().withHours()
时,我不喜欢处理分钟/秒/纳米。
原文由 JanM 发布,翻译遵循 CC BY-SA 4.0 许可协议
另一种选择(特别是如果你想改变一个已经存在的 LocalDateTime
)是使用 with()
方法。
它接受 TemporalAdjuster
作为参数。根据 javadoc ,将 LocalTime
传递给此方法正是您所需要的:
LocalDate 和 LocalTime 类实现了 TemporalAdjuster,因此该方法可用于更改日期、时间或偏移量:
结果 = localDateTime.with(date);
结果 = localDateTime.with(时间);
所以,代码将是:
LocalDateTime todayAt6 = LocalDateTime.now().with(LocalTime.of(6, 0));
原文由 user7605325 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
LocalDate
有各种重载atTime
方法,比如 这个,它有两个参数(一天中的小时和分钟):