2017-12-05 139 views
13

Dizeyi LocalDateTime nesnesine dönüştürmeye çalışıyorum.Bu tarih ayrıştırma neden başarısız oluyor?

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

Bu testin geçmesini beklerim.

aşağıdaki hatayı alıyorum: Bu hata rastlamak olabilir gibi

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

+0

İşleri ince: comments düzeltmeleri benim için sorun içinde geçici çözüm 'dt = 2017-12-05T01: 46: 57.111' – alfasin

+0

@alfasin hangi jvm sürümünü kullanıyorsunuz? – user4184113

+1

Benim üzerimde çalışmıyor. Garip bir şey - bekledim. –

cevap

17

görünüyor: https://bugs.openjdk.java.net/browse/JDK-8031085 ben kullanıyorum JVM sürümü karşılık olarak. Benim makinede

@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

Oh, vay, bu hayal kırıklığı yaratıyor. 8'in bir sonraki yapısında düzeltmek yerine neden 9'a ertelediklerini merak ediyorum. –