LocalDate与LocalDateTime多个时间对比获取最新的时间

代码编写

  public static void main(String[] args) {
        List<LocalDate> localDateList = new ArrayList<LocalDate>() {{
            add(LocalDate.of(2024, 5, 1));
            add(LocalDate.of(2024, 6, 1));
            add(LocalDate.of(2024, 7, 1));
            add(LocalDate.of(2024, 7, 12));
            add(LocalDate.of(2024, 7, 26));
        }};
        LocalDate localDate = findNewestLocalDate(localDateList);
        System.out.println(localDate);


        System.out.println("=============================");
        List<LocalDateTime> localDateTimeList = new ArrayList<LocalDateTime>() {{
            add(LocalDateTime.of(2024, 5, 1, 12, 33, 0));
            add(LocalDateTime.of(2024, 6, 1, 6, 10, 11));
            add(LocalDateTime.of(2024, 7, 1, 4, 6, 30));
            add(LocalDateTime.of(2024, 7, 12, 8, 30, 30));
            add(LocalDateTime.of(2024, 7, 26, 9, 30, 40));
            add(LocalDateTime.of(2024, 7, 26, 9, 30, 50));
            add(LocalDateTime.of(2024, 7, 26, 10, 30, 50));
        }};
        LocalDateTime localDateTime = findNewestLocalDateTime(localDateTimeList);
        System.out.println(localDateTime);
    }

    private static LocalDate findNewestLocalDate(List<LocalDate> localDateList) {
        LocalDate localDate = null;
        for (int i = 0; i < localDateList.size(); i++) {
            LocalDate newestLocalDate = localDateList.get(i);
            if (i == 0) {
                localDate = newestLocalDate;
            }
            boolean before = localDate.isBefore(newestLocalDate);
            if (before) {
                localDate = newestLocalDate;
            }
        }
        return localDate;
    }

    private static LocalDateTime findNewestLocalDateTime(List<LocalDateTime> localDateTimeList) {
        LocalDateTime localDateTime = null;
        for (int i = 0; i < localDateTimeList.size(); i++) {
            LocalDateTime newestLocalDateTime = localDateTimeList.get(i);
            if (i == 0) {
                localDateTime = newestLocalDateTime;
            }
            boolean before = localDateTime.isBefore(newestLocalDateTime);
            if (before) {
                localDateTime = newestLocalDateTime;
            }
        }
        return localDateTime;
    }

执行结果
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
**LocalDateLocalDateTime之间的转化主要涉及日期和时间的操作。** 首先,了解这两个类的定义: - **LocalDate**: 表示没有时间的日期(年、月、日)。 - **LocalDateTime**: 表示日期和时间的组合。 以下是一些常见的转换操作: 1. **从LocalDateLocalDateTime**: 要将`LocalDate`转换为`LocalDateTime`,您需要提供一个`LocalTime`实例。例如,如果您有一个代表当前日期的`LocalDate`实例,并且想要将其转换为当天午夜开始的`LocalDateTime`,可以使用`LocalTime.MIDNIGHT`常量。代码示例如下: ```java LocalDate date = LocalDate.now(); LocalDateTime dateTime = LocalDateTime.of(date, LocalTime.MIDNIGHT); ``` 2. **从LocalDateTimeLocalDate**: 要从`LocalDateTime`获取`LocalDate`,可以简单地调用`toLocalDate()`方法。这将丢弃时间部分,只保留日期。代码示例如下: ```java LocalDateTime dateTime = LocalDateTime.now(); LocalDate date = dateTime.toLocalDate(); ``` 3. **格式化输出**: 如果您需要将`LocalDate`或`LocalDateTime`转换为字符串,可以使用`DateTimeFormatter`类来指定输出格式。例如,要将日期格式化为"yyyy-MM-dd",可以使用以下代码: ```java DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String dateStr = date.format(fmt); ``` 4. **解析输入**: 如果您有日期或日期时间的字符串表示,并希望将其转换为`LocalDate`或`LocalDateTime`对象,也可以使用`DateTimeFormatter`的`parse`方法。例如: ```java LocalDate parsedDate = LocalDate.parse("2021-06-15", fmt); ``` 请注意,这些转换不涉及任何时区信息,因为`LocalDate`和`LocalDateTime`都是不可变的且不包含时区的日期和日期时间对象。如果需要处理时区,您应该使用`ZonedDateTime`或`OffsetDateTime`类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值