전체/Java
LocalDateTime, LocalDate, String to LocalDate, Compare, isBefore, isAfter
effortDev
2018. 6. 4. 17:58
1. String to LocalDateTime, String to LocalDate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // String to LocalDateTime String issueDate = "20180604" String tempDate = issueDate.substring(0, 4)+"-"+issueDate.substring(4, 6)+"-"+issueDate.substring(6, 8)+" 00:00"; // tempDate = "2018-06-04 00:00" LocalDate tempDate2 = LocalDate.parse( issueDate , DateTimeFormatter.BASIC_ISO_DATE); // 2018-10-04 // tempDate2 = "2018-06-04" DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); LocalDateTime localDateIssueDate = LocalDateTime.parse(tempDate, formatter); // localDateIssueDate "2018-06-04T00:00" // String to LocalDate DateTimeFormatter dateformatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate a = LocalDate.parse("2018-06-04",dateformatter); // LocalDate 2018-06-04 | cs |
2. LocalDateTime to LocalDate, LocalDate to LocalDateTime
1 2 3 4 5 6 7 8 9 10 11 12 | // LocalDateTime to LocalDate LocalDateTime localDateTime = LocalDateTime.parse("2018-06-04T00:00"); LocalDate localDate = localDateTime.toLocalDate(); // localDate : 2018-06-04 // LocalDate to LocalDateTime LocalDate date = LocalDate.parse("2018-06-04"); // 2018-06-04 LocalDateTime localDateTime1 = date.atStartOfDay(); // 2018-06-04T00:00 LocalDateTime localDateTime2 = date.atTime(13,15); // 2018-06-04T13:15 LocalDateTime localDateTime3 = date.atTime(16,05, 40); // 2018-06-04T16:05:40 | cs |
3. LocalDate, LocalDateTime Compare 비교하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // 1. LocalDate compareTo LocalDate startDt = LocalDate.of(2018, 6, 4); LocalDate endDt = LocalDate.of(2018, 6, 6); LocalDate issueDt = LocalDate.of(2018, 6, 5); System.out.println(startDt.compareTo(endDt)); // startDt(2018, 6, 4) > endDt(2018, 6, 6) -> return -1 System.out.println(startDt.compareTo(startDt)); // startDt(2018, 6, 4) = startDt(2018, 6, 4) -> return 0 System.out.println(endDt.compareTo(startDt)); // endDt(2018, 6, 6) > startDt(2018, 6, 4) -> return 1 // startDt(시작일자)와 endDt(종료일자) 사이에 issueDt(발행일자)가 들어가는지 비교하기 위해 조건문을 작성하면 if(issueDt.compareTo(cmpnStrtDttm) == -1 // 발행일이 시작일보다 작거나 || issueDt.compareTo(cmpnEndDttm) == 1 ) { // 발행일이 종료일보다 크면 throw new exception("발행일자가 시작일자와 종료일자 기간사이에 속해있지 않습니다."); } // 2. LocalDateTime isBefore, isAfter // LocalDateTime형식의 strtDt : 2018-06-04T00:00 , endDt: 2018-06-05T00:00, isuueDt: 2018-06-04T00:00 LocalDateTime strtDt = LocalDateTime.parse("2018-06-04T00:00"); LocalDateTime endDt = LocalDateTime.parse("2018-06-05T00:00"); LocalDateTime isuueDt = LocalDateTime.parse("2018-06-04T00:00"); if( (isuueDt.isAfter(strtDt) // 발행일이 시작일보다 커야(이후여야)하고 && isuueDt.isBefore(endDt) ) // 발행일이 종료일보다 작아야(이전이어야)하고 || (isuueDt.isEqual(strtDt) // 발행일이 시작일과 같을경우 || isuueDt.isEqual(endDt) )){ // 발행일이 종료일과 같을경우 System.out.println("발행일이 시작일과 종료일 사이에 속해있음."); }else{ throw new exception("발행일이 시작일과 종료일 사이에 속해있지 않습니다."); } if( (!isuueDt.isAfter(strtDt) // 발행일(06-04)이 시작일(06-05)보다 크지(이후이지) 않고 && !isuueDt.isBefore(endDt) )) // 발행일(06-04)이 종료일(06-05)보다 작지(이전이지)않고 { throw new exception("발행일이 시작일과 종료일 사이에 속해있지 않습니다."); }else{ System.out.println("발행일이 시작일과 종료일 사이에 속해있음."); } | cs |
LocalDate, LocalDateTime의 형식과 Compare 방법에 대해 알 수 있었다.