2017-12-05 8 views
13

문자열을 LocalDateTime 객체로 변환하려고합니다.왜이 날짜 구문 분석이 실패합니까?

@Test 
public void testDateFormat() { 
    String date = "20171205014657111"; 
    DateTimeFormatter formatter = 
     DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"); 
    LocalDateTime dt = LocalDateTime.parse(date, formatter); 
} 

이 테스트를 통과해야합니다.

나는 다음과 같은 오류를 얻을 :이 버그에 걸쳐 실행 한 수처럼

java.time.format.DateTimeParseException: Text '20171205014657111' could not be parsed at index 0

+0

작품 미세 : 코멘트 수정 나를 위해 문제의 해결 방법'DT = 2017-12-05T01는 : 46 : 57.111' – alfasin

+0

@alfasin하는 JVM 버전이 실행중인? – user4184113

+1

광산에서는 작동하지 않습니다. 이상한 종류 - 나는 그것을 기대했다. –

답변

17

가 보이는 : https://bugs.openjdk.java.net/browse/JDK-8031085 그것을 내가 사용하고있어 JVM의 버전에 해당한다. 내 컴퓨터에

@Test 
public void testDateFormat() { 
    String date = "20171205014657111"; 
    DateTimeFormatter dtf = new DateTimeFormatterBuilder() 
     .appendPattern("yyyyMMddHHmmss") 
     .appendValue(ChronoField.MILLI_OF_SECOND, 3).toFormatter(); 
    LocalDateTime dt = LocalDateTime.parse(date, dtf); 
} 
+2

아, 실망 스럽네요. 나는 그들이 왜 그것을 다음 빌드 8에 고정시키는 대신에 9로 연기하는 지 궁금해. –

관련 문제