2015-05-28 4 views
1

Простой вопрос. Почему я получаю сообщение об ошибке - «Text '03 -JUL-2010» не может быть проанализирован с индексом 3 »для следующего кода. в Java 1.8? Использование Eclipse.Java LocalDate Parsing

Если я изменю код в раздел комментариев. Он работает отлично.

import java.time.LocalDate; 
import java.time.format.DateTimeFormatter; 
public class Test { 

public static void main(String[] args) { 
//  String date   = "2010-Jul-03"; 
//  String dateformat = "yyyy-MMM-dd"; 

    String date   = "03-JUl-2010"; 
    String dateformat = "dd-MMM-yyyy"; 

    LocalDate localizeddate = LocalDate.parse(date, DateTimeFormatter.ofPattern(dateformat)); 

    System.out.println(localizeddate); 
} 

ответ

4

BuildDateTimeFormatter что ignores case

DateTimeFormatter formatter = new DateTimeFormatterBuilder() 
        .parseCaseInsensitive() 
        .append(DateTimeFormatter.ofPattern(dateformat)) 
        .toFormatter(); 

Или зафиксировать верхний/нижний регистр в имени месяца, редактирования JUl быть Jul.

String date   = "03-Jul-2010"; 
+0

Спасибо. Это сработало. Не понял, что это будет проблемой. – userDSSR

+1

@userDSSR Обратите внимание, что 'Locale' и язык месяца (или день недели и т. Д.) Также имеют значение. –