2022-12-02
라는 문자열 데이터를 LocalDateTime
으로 변경하는 과정에서 오류가 발생했다.
LocalDateTime
은 날짜와 시간을 같이 저장하는데 시간값이 세팅되지 않기 때문에 발생한 오류이다.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate dt = LocalDate.parse("20140218", formatter);
2022-12-02라는 값을 넣으면 자동으로 Time부분은 00으로 세팅하고 싶다면 다음 코드를 사용하자.
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDateTime time = LocalDate.parse("20140218", formatter).atStartOfDay();
// 2022-12-02T00:00 이런 식으로 저장된다.
나는 시간이 없는 경우와 시간이 있는 경우 모두 처리해야 하기 때문에 다음과 같은 코드를 사용했다.
public static LocalDateTime parseDate(String dateString) {
DateTimeFormatter format
if(dateString.contains(":")) {
// 2022-10-31 21:00 이라는 문자열은 여기 걸립니다.
format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
return LocalDateTime.parse(dateString, format);
}
// 2022-12-02 라는 문자열은 여기 걸립니다.
format = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return LocalDate.parse(dateString, format).atStartOfDay();
}