2013-05-28 3 views
3

문자열을 파싱하는 데 약간의 문제가 있습니다. 내가 검색 한 유래의 I 내 대답하지만 여전히 작동하지있어 생각 .. 그래서 ..SimpleDateFormat에서 날짜를 구문 분석 할 수 없습니다.

나는이

화 1월 8일 중부 유럽 표준시 00시 00분 0초처럼 보이는 문자열을 구문 분석을 시도

1985 나는이 IST 노력하고있어 ..

private Date getDateFromString(String sDate) 
{ 
    String dateFormat = "EEE MMM dd HH:mm:ss z yyyy"; 

    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); 
    sdf.setTimeZone(TimeZone.getTimeZone("CET")); 
    Date newDate = null; 
    try { 
     newDate = sdf.parse(sDate); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return newDate; 

} 

물론 누군가가 FORCAST

에 감사드립니다 :-) 나를 도울 수
+2

이 코드는 저에게 적합합니다. java.util.Date 또는 java.sql.Date를 가져 오기로 사용합니까? – darijan

+0

adenoyel이 말한 것을 추가 할 때까지는 나에게 도움이되지 않았습니다.이 로캘을 기본값으로 설정해야합니다. – Djon

+0

오류/문제점은 무엇입니까? – Bohemian

답변

7

문제는이 경우에 어떤 로케일 (지정하지 않았기 때문에 "화"와 "월"의 해석에, 그것은 기본 로케일을한다 (경우, Locale.getDefault())

시도 :

new SimpleDateFormat(dateFormat, new Locale("en_US")); 
+0

굉장한 감사 !!!! –

0

오순절 캘린더를 사용해 보셨나요?

public Date getDateFromString(String sdate) { 
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 
    Calendar car = Calendar.getInstance(); 
    Date ndate = null; 
    try { 
     ndate = sdf.parse(sdate); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    return ndate; 
} 
관련 문제