从日历到 ChronoLocalDateTime

from Calendar to ChronoLocalDateTime

我想知道 LocalDateTime 是否在昨天之后,所以我做了这个比较,但我不知道如何从日历传递到 ChronoLocalDateTime

final Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
lastClientEvent.getDateReceived().isAfter(cal);

我不确定你所说的昨天到底是什么意思,如果你指的是昨天,则可以使用今天午夜之前的任何日期:

LocalDateTime yesterday = LocalDateTime.of(
        LocalDate.now(ZoneId.of("Europe/Madrid")),
        LocalTime.MIDNIGHT
); 
=> 2018-06-16T00:00

如果你的意思是昨天午夜你可以使用minusDays(1) :

LocalDateTime yesterday = LocalDateTime.of(
        LocalDate.now(ZoneId.of("Europe/Madrid")),
        LocalTime.MIDNIGHT
).minusDays(1);
=> 2018-06-15T00:00

然后你可以将你的日期与此进行比较:

LocalDateTime anyDate = LocalDateTime.of(2018, Month.JUNE, 16, 9, 27, 50);
if (anyDate.isAfter(yesterday)) { }

您可以使用 的另一个解决方案:

LocalDateTime anyDate = LocalDateTime.of(2018, Month.JUNE, 16, 9, 27, 50);
LocalDate zoneDate = LocalDate.now(ZoneId.of("Europe/Madrid"));
if (anyDate.toLocalDate().isAfter(zoneDate)) { }

你可以这样转换:

final Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
Date ts = cal.getTime();
Instant instant = Instant.ofEpochMilli(ts.getTime());
LocalDateTime yesterday = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

if(lastClientEvent.getDateReceived().isAfter(yesterday){..}