从字符串转换为日期后的数据排序列表

时间:2019-07-18 11:13:58

标签: java

我在DTO下方有详细信息

public class CreditDetailDTO {

    private String sectionType;

    private BigDecimal totalAmount;

    private List<SectionDetailsDTO> sectionDetails;

}

public class SectionDetailsDTO {
    private String startDate;

    private String expiryDate;

    private BigDecimal amount;
}

我需要按开始日期对sectionDetails进行排序。我使用下面的代码进行排序

creditDetailsDTO.getSectionDetails().sort(Comparator.comparing(SectionDetailsDTO::getStartDate));
  

您会看到getStartDate是字符串,但我需要什么,首先   需要将getStartDate转换为date,然后根据日期   排序数据

样本日期格式:15-07-2019:11:00:00

2 个答案:

答案 0 :(得分:1)

使用LocalDateTime将日期解析为DateTimeFormatter

DateTimeFormatter f = DateTimeFormatter.ofPattern("dd-MM-yyyy:HH:mm:ss");
LocalDateTime t = LocalDateTime.parse("15-07-2019:11:10:20",f);

排序代码

creditDetailsDTO.getSectionDetails().stream()
    .sort(Comparator.comparing(dto -> LocalDateTime.parse(dto.getStartDate(), f)));

答案 1 :(得分:0)

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(your_String_pattern);
Date date = simpleDateFormat.parse(your_string_value);
Log.e("tag","Converted Date = "+date);  

如果您的值和模式匹配,它将为您提供日期。之后,您可以在该日期执行所需的操作。(请确保对string_date_value进行了一些验证)。