如何将实例化ZonedDateTime的时间更改为f.e。:'java.time.LocalTime.MIN'或'java.time.LocalTime.MAX'?
ZonedDateTime date = ZonedDateTime.now();
这是一个好的开始:ZonedDateTime startDate = date.withHour(0).withMinute(0).withSecond(0).withNano(0);
但最好有:
ZonedDateTime startDate = date.withTime(LocalTime.Min);
答案 0 :(得分:3)
正确的方法是:
data = JSON.parse(response_body).fetch('data')
uri_list = data.select { |img| img['is_preferred'] }.map { |img| img['uri'] }
有人可能很容易期望ncl_convert2nc
和 System.out.println(date.toLocalDate().atStartOfDay(date.getZone()));
System.out.println(date.toLocalDate()
.plusDays(1)
.atStartOfDay(date.getZone())
.minusNanos(1));
完成这项工作,它可能会给你想要的结果。请注意,由于过渡到夏令时(DST)和其他异常,有(罕见)情况,当天00:00(这是date.with(LocalTime.MIN)
的定义)在该区域中不存在。上面清楚地考虑了这一点,并且让读者毫不怀疑在这种情况下会发生什么。
但是,如果您只需要比较日期,只需摆脱一天中的时间并比较日期:
date.with(LocalTime.MAX)
答案 1 :(得分:1)
你可以使用.with(TemporalAdjuster)。 您可以使用TemporalAdjust.adjustInto(Temporal)调整TemporalAdjuster:
https://docs.oracle.com/javase/8/docs/api/java/time/temporal/TemporalAdjuster.html https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html
答案 2 :(得分:1)
ZonedDateTime中Time的最小值非常短:
ZonedDateTime.now().truncatedTo(ChronoUnit.DAYS);
它将从ZonedDateTime切断(设置为零):小时,分钟,秒和纳米。
这是ZonedDateTime中Time的最大值:
ZonedDateTime.now().withHour(23).withMinute(59).withSecond(59).withNano(LocalTime.MAX.getNano());