JAVA

[JAVA] 4자리 문자열을 HH:mm형식으로 변환

오선지♬ 2024. 10. 26. 10:10
728x90
반응형

 

DateTimeFormatter 사용

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.stream.IntStream;

public void updateMtDtRangeWithDateAndTime(List<ResLeadMtrmListDTO> leadMtrmList, List<ResLeadMtrmListDTO> ldMtrmList) {
    // Define date and time formatters
    DateTimeFormatter dateInputFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");
    DateTimeFormatter dateOutputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    DateTimeFormatter timeInputFormatter = DateTimeFormatter.ofPattern("HHmm");
    DateTimeFormatter timeOutputFormatter = DateTimeFormatter.ofPattern("HH:mm");

    IntStream.range(0, leadMtrmList.size()).forEach(i -> {
        ResLeadMtrmListDTO leadMtrm = leadMtrmList.get(i);
        ResLeadMtrmListDTO ldMtrm = ldMtrmList.get(i);

        // Parse and format date
        LocalDate mtSdt = LocalDate.parse(leadMtrm.getMtSdt(), dateInputFormatter);
        LocalDate mtEdt = LocalDate.parse(leadMtrm.getMtEdt(), dateInputFormatter);

        // Parse and format time if applicable (assuming time fields exist)
        LocalTime startTime = LocalTime.parse(leadMtrm.getStartTime(), timeInputFormatter);
        LocalTime endTime = LocalTime.parse(leadMtrm.getEndTime(), timeInputFormatter);

        // Set mtDtRange with date and time range in ldMtrmList
        ldMtrm.setMtDtRange(
            mtSdt.format(dateOutputFormatter) + " " + startTime.format(timeOutputFormatter) + " ~ " +
            mtEdt.format(dateOutputFormatter) + " " + endTime.format(timeOutputFormatter)
        );
    });
}
728x90
반응형