
1. startDate 20240415 / endDate 20240417
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String startDate = "20240415";
String endDate = "20240417";
boolean result = isValidDateRange(startDate, endDate);
if (result) {
System.out.println(result + " : 정확한 날짜입니다.");
} else {
System.out.println(result + " : 시작 날짜를 확인해주세요.");
}
}
public static boolean isValidDateRange(String startDateStr, String endDateStr) {
// 날짜 포맷 지정
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// 시작 날짜와 종료 날짜를 LocalDate 객체로 변환
LocalDate startDate = LocalDate.parse(startDateStr, formatter);
LocalDate endDate = LocalDate.parse(endDateStr, formatter);
// 유효성 검사
return !startDate.isAfter(endDate);
}
}

2. startDate 20240417 / endDate 20240415
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String startDate = "20240417";
String endDate = "20240415";
boolean result = isValidDateRange(startDate, endDate);
if (result) {
System.out.println(result + " : 정확한 날짜입니다.");
} else {
System.out.println(result + " : 시작 날짜를 확인해주세요.");
}
}
public static boolean isValidDateRange(String startDateStr, String endDateStr) {
// 날짜 포맷 지정
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// 시작 날짜와 종료 날짜를 LocalDate 객체로 변환
LocalDate startDate = LocalDate.parse(startDateStr, formatter);
LocalDate endDate = LocalDate.parse(endDateStr, formatter);
// 유효성 검사
return !startDate.isAfter(endDate);
}
}

3. 정리
1) DateTimeFomatter

- 날짜와 시간을 형식화하거나 파싱하는 데 사용되는 클래스
- Java 8부터 제공
- `java.time.format` 패키지에 포함되어 있음
- 문자열을 날짜나 시간으로 변환하거나, 날짜나 시간을 원하는 형식으로 출력할 수 있음
(1) 파싱
- 문자열을 날짜나 시간으로 변환: 문자열을 'LocalDate', 'LocalTime', 'LocalDateTime', 'ZonedDateTime' 등의 날짜/시간 타입으로 파싱함
- 날짜나 시간을 문자열로 변환: 'LocalDate', 'LocalTime', 'LocalDateTime', 'ZonedDateTime'의 날짜/시간을 원하는 형식을 문자열로 형식화함
(2) 형식 지정자(pattern)
- 다양한 형식을 지원함
- 형식 지정자(pattern)를 사용하여 형식을 지정함
- "yyyy-MM-dd"는 년-월-일, "HH:mm:ss"는 시간-분-초 형식을 나타냄
2) LocalDate.parse()

- 주어진 문자열을 'LocalDate' 객체로 파싱하는데 사용됨
- 첫 번째 매개변수는 형식화된 문자열을 나타냄
- 두 번째 매개변수는 이 문자열의 형식을 정의함
- 주어진 문자열을 'LocalDate' 객체로 변환함
3) isAfter()

- 'LocalDate', 'LocalTime', 'LocalDateTime', 'ZonedDateTime'등의 날짜와 시간 객체에서 사용되는 메서드
- 해당 객체가 다른 객체보다 이후인지 여부를 확인하는데 사용됨
- 첫 번째 객체가 두 번째 객체보다 이후인지를 확인할 수 있음
참고
OpenAi. (2024) ChatGPT (version 3.5)[Large Language model]. https://chat.openai.com
300x250
'SOMEDAY > JAVA' 카테고리의 다른 글
[Thymeleaf] config에 설정된 url 패턴을 타임리프 src 경로로 설정 (0) | 2024.07.10 |
---|---|
[SPRING] @BeforeEach @AfterEach 어노테이션 (0) | 2024.04.17 |
[JAVA] 이스케이프 사용 대신 텍스트 블록 문법 (0) | 2024.04.10 |
[JAVA] 이메일 유효성 검사 정규표현식 (0) | 2024.04.03 |
[Swagger] https 접속 시 해당 서버만 목록에 나오게 하기 (0) | 2024.04.02 |