String으로 받아오는 날짜와 현재 날짜를 비교하려고 합니다.
LocalDate객체를 사용하면 비교함수를 제공하기 때문에, String을 LocalDate로 변환합니다.
LocalDate를 사용하여 현재 날짜 받아오기
LocalDate today = LocalDate.now(); // 2023-08-11
String을 LocalDate로 변환
String을 바로 parsing하게 되면 '20230811' could not be parsed at index 0 오류가 납니다.
String date = "20230815";
LocalDate.parse(date); //'20230815' could not be parsed at index 0
LocalDate.parse에 두번째 파라미터로 DateTimeFormatter 라이브러리로 format을 지정합니다.
- BASIC_ISO_DATE : '20230815'
- ISO_DATE : '2023-08-15' or '2011-12-03+01:00'
- ISO_DATE_TIME : '2023-08-15T10:15:30'
- ISO_INSTANT : '2023-08-15T10:15:30Z'
- ISO_LOCAL_DATE : '2023-08-15'
- ISO_LOCAL_DATE_TIME : '2023-08-15T10:15:30'
- ISO_LOCAL_TIME : '10:15' or '10:15:30'
- ISO_OFFSET_DATE : '2023-08-15+01:00'
- ISO_OFFSET_DATE_TIME : '2023-08-15T10:15:30+01:00'
- ISO_OFFSET_TIME : '10:15+01:00' or '10:15:30+01:00'.
- ISO_ORDINAL_DATE : '2023-337' //연도-해당연도에서 몇번째 날
- ISO_TIME : '10:15', '10:15:30' or '10:15:30+01:00'
- ISO_WEEK_DATE : '2023-W48-6'. //연도-해당연도에서 몇번째 주-요일(1:월, 7:일)
- ISO_ZONED_DATE_TIME : '2023-08-15T10:15:30+01:00[Europe/Paris]'.
- ISO_ZONED_DATE_TIME : 'Tue, 15 Aug 2023 11:05:30 GMT'.
String date = "20230815";
LocalDate.parse(date, DateTimeFormatter.ISO_DATE_BASIC); //20230815
String을 LocalDate로 변환 후 현재 날짜와 비교 - 전체코드
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate today = LocalDate.now(); // 2023-08-11
String todayStr = today.format(formatter); //"20230811"
String date = "20230815";
LocalDate.parse(date,DateTimeFormatter.BASIC_ISO_DATE).isBefore(today) //false
728x90
'Java' 카테고리의 다른 글
[Java] Optional로 Null 체크하기 - Java8이상 (0) | 2023.08.12 |
---|---|
[Java] equals NullPointerException(NPE) 다루기 (0) | 2023.08.11 |
[Java] LocalDate 비교 (0) | 2023.08.10 |
[JAVA] HashMap, LinkedHashMap - value로 key찾기 (0) | 2023.08.09 |
[JAVA] Set과 Map의 차이 (0) | 2023.07.27 |