如何在列表日期中获取最大和最小日期就像 java 中的 String ''17.03.2020", ''12.03.2020", ''01.02.2020" [关闭]

Posted

技术标签:

【中文标题】如何在列表日期中获取最大和最小日期就像 java 中的 String \'\'17.03.2020", \'\'12.03.2020", \'\'01.02.2020" [关闭]【英文标题】:How to get max and minimum date in a list dates are like String ''17.03.2020", ''12.03.2020", ''01.02.2020" in java [closed]如何在列表日期中获取最大和最小日期就像 java 中的 String ''17.03.2020", ''12.03.2020", ''01.02.2020" [关闭] 【发布时间】:2020-06-30 07:47:39 【问题描述】:
List<String> dateList=new ArrayList<>();

请帮助我获取给定列表日期格式的最大和最小日期是字符串格式(“17.03.2020”)

【问题讨论】:

你自己试过什么?你做过研究吗? 这能回答你的问题吗? How to sort Date which is in string format in java? 【参考方案1】:

使用DateTimeFormatter 将日期字符串转换为对应的LocalDate 值并将它们添加到一个新的List 中,您可以使用Collections::sort 对其进行排序。

按如下方式进行:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Testing 
    public static void main(String[] args) 
        DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd.MM.uuuu");
        List<String> strDateList = new ArrayList<String>();
        strDateList.add("17.03.2020");
        strDateList.add("12.03.2020");
        strDateList.add("01.02.2020");

        List<LocalDate> dateList = new ArrayList<LocalDate>();
        for (String ds : strDateList) 
            dateList.add(LocalDate.parse(ds, dateFormatter));
        
        Collections.sort(dateList);
        System.out.println(dateList);

        // If you want to replace the elements in the original list with sorted values
        strDateList.clear();
        for (LocalDate ld : dateList) 
            strDateList.add(ld.format(DateTimeFormatter.ofPattern("dd.MM.uuuu")));
        
        System.out.println(strDateList);
    

输出:

[2020-02-01, 2020-03-12, 2020-03-17]
[01.02.2020, 12.03.2020, 17.03.2020]

【讨论】:

以上是关于如何在列表日期中获取最大和最小日期就像 java 中的 String ''17.03.2020", ''12.03.2020", ''01.02.2020" [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

获取csv中每个日期的最小和最大日期时间

XSL 转换提取最小和最大日期

查找每个 ID 的特定日期之前的最大日期和特定日期之后的最小日期 [关闭]

Oracle - 从一组行中获取最小和最大日期

获取日期范围之间每一行的最小和最大日期时间

java中相同的日期获得最大和最小的时间