2014-11-25 4 views
0

날짜를 ddMMMyyyy 형식으로 구문 분석하고이를 dd.MM.YYYY로 변환하려고합니다. 때로는 내 입력 문자열은 다음과 같습니다 : 3Mar2014 또는 1Jan2014하지만 이것은 ddMMMyyyy 형식의 문제가 아니어야합니다.ddMMMyyyy를 Java로 구문 분석하는 방법은 무엇입니까?

SimpleDateFormat formatter = new SimpleDateFormat("ddMMMyyyy"); 
    SimpleDateFormat convert = new SimpleDateFormat("dd.MM.yyyy"); 
    String to = ""; 

    Date date; 
    try 
    { 
     date = formatter.parse(from); 
     to = convert.format(date); 
    } 
    catch (ParseException e) 
    { 
     System.out.println(e.getMessage() + " --- " + from); 
    } 

내 코드는 항상 말하고있다 :

Unparseable date: "3Mar2014" --- 3Mar2014 

어떤 아이디어?

+0

혼동을 피하기 위해 3 월으로 변경했습니다. –

+4

'로케일'을 확인하십시오. 영어가 아닐 수도 있습니다. –

+1

Java 8에서 작동합니다. 어떤 버전의 테스트를하고 있습니까? –

답변

0

처럼 작동

Locale usLocale = new Locale("en", "US"); 
Locale.setDefault(usLocale); 

이 문제를 해결했습니다.

로캘을 변경하지 않고 패턴을 'dMMMyyyy'로 변경해도 문제가 해결되지 않습니다. 그것은 여전히 ​​말하고 있습니다

Unparseable date: "5Oct2014" 
1

문제는 패턴과 함께 있습니다.

당신이 사용하는 경우 "dMMMyyyy는"대신, 영어 언어로 하나의 예에 로케일을 변경 매력

+0

정답. 그러나 JVM의 현재 기본 로케일에 내재적으로 의존하지 않도록 Locale을 추가해야합니다. –

관련 문제