728x90
LocalDateTime.parse(..) Error. java.time.format.DateTimeParseException: Text '2022-07-05T13:32:56' could not be parsed at index 10
날짜 변환을 하다보면
아래와 같은 오류가 발생할 수 있습니다.
날짜의 입력데이터 포맷이 다르기 때문이지요.
2022-07-06 22:10:46[ERROR][DateUtils.java]getSession(85)[http-nio-8888-exec-1] : [DateUtils.convertTime] error Occurred : message - Text '2022-07-05T13:32:56' could not be parsed at index 10
java.time.format.DateTimeParseException: Text '2022-07-05T13:32:56' could not be parsed at index 10
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
이러한 오류를 만났을때 어떻게 해야할지 알아볼까요?
아래의 코드들을 이용하여 어떻게 되는지 테스트해보세요.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
.
.
.
.
String dateStr = "2022-07-05T13:32:56.152362";
DateTimeFormatter stdFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
LOG.info("[LocalDateTime] stdFormat date - {}", LocalDateTime.parse(dateStr, stdFormat) );
DateTimeFormatter sssFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.ssssss");
LOG.info("[LocalDateTime] sssFormat date - {}", LocalDateTime.parse(dateStr, sssFormat) );
// 나노 초 (nano seconds. 1/1000000000 sec이므로 9자리로 표현)
DateTimeFormatter nnnFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.nnnnnn");
LOG.info("[LocalDateTime] nnnFormat date - {}", LocalDateTime.parse(dateStr, nnnFormat) );
######## Output ########
[LocalDateTime] stdFormat date - 2022-07-05T13:32:56
[LocalDateTime] sssFormat date - 2022-07-05T13:32:56.152362
[LocalDateTime] nnnFormat date - 2022-07-05T13:32:56.000152362
ISO_LOCAL_DATE_TIME
ISO_LOCAL_DATE_TIME
public static final DateTimeFormatter ISO_LOCAL_DATE_TIME
The ISO date-time formatter that formats or parses a date-time without an offset, such as '2011-12-03T10:15:30'.
This returns an immutable formatter capable of formatting and parsing the ISO-8601 extended offset date-time format. The format consists of:
The ISO_LOCAL_DATE
The letter 'T'. Parsing is case insensitive.
The ISO_LOCAL_TIME
The returned formatter has a chronology of ISO set to ensure dates in other calendar systems are correctly converted. It has no override zone and uses the STRICT resolver style.
728x90
'Development > Java' 카테고리의 다른 글
인텔리J (IntelliJ Tip 모음) 팁 모음 (0) | 2022.09.15 |
---|---|
[자바] java.lang.UnsupportedClassVersionError: AsyncService : Unsupported major.minor version 51.0 (자바 버전 오류) (1) | 2022.07.23 |
Mybatis의 동적 SQL 표현식 (IF, CHOOSE, WHEN, LIKE, FOREACH etc) (0) | 2022.07.05 |
IntelliJ - SonarLint 플러그인 설치 및 사용 방법 (소스 코드 품질 & 코드 보안 문제 해결) (1) | 2022.04.13 |
Eclipse & IntelliJ Shortcut Keymap 비교 (이클립스, 인텔리J 단축키 비교) (0) | 2021.12.02 |
댓글