개요
로그에는 시간을 LocalDateTime 형태로 저장하지만 view에는 yyyy.MM.dd hh:mm:ss 형태로 뿌려줘야 했기 때문에 아래와 같이 LocalDateTime.parse 메서드와 DateTimeFormatter를 적용했습니다.
하지만, 예상과는 다르게 오류가 발생했는데 그 이유는 Java 8에서 아래와 같은 버그가 있기 때문이였습니다.
DateTimeFormatter won't parse dates with custom format "yyyyMMddHHmmssSSS"
해결방법
버그리포트 답변에 의하면 java 8에서는 아래와 같이 DateTimeFormatter를 정의하면 파싱 에러를 해결할 수 있습니다.
DateTimeFormatter dateTimeFormatter = new DateTimeFormatterBuilder()
.appendPattern("yyyyMMddHHmmss")
.appendValue(ChronoField.MILLI_OF_SECOND, 3)
.toFormatter();
따라서, 구현하고자 했던 최종 코드는 아래와 같습니다.
public static LocalDateTime convertString2LocalDateTime(String dateTime) {
try {
DateTimeFormatter dateTimeFormatter = new DateTimeFormatterBuilder()
.appendPattern("yyyyMMddHHmmss")
.appendValue(ChronoField.MILLI_OF_SECOND, 3)
.toFormatter();
return LocalDateTime.parse(dateTime, formatter);
} catch (DateTimeParseException e) {
e.getStackTrace();
// 예외처리
}
}
[출처]
stackoverflow.com/questions/48520117/date-as-longvalue-to-localdatetime
반응형
'[DEV] 기록' 카테고리의 다른 글
[git] CLI 명령어 정리 (0) | 2021.01.31 |
---|---|
구글 크롬(Chrome) 응답없음 발생 시 해결 방법 (2) | 2021.01.29 |
[javascript] window.onbeforeunload 페이지를 벗어날 때 이벤트 처리 (1) | 2021.01.27 |
Java 날짜 시간 유형에 대한 고찰 (2) | 2021.01.25 |
[javascript] json 형태의 object 값 console로 출력하기 (0) | 2021.01.16 |