2013-02-03 3 views
5

Java로이 변환을 수행하려면 어떻게해야합니까?"2013 년 2 월 1 일 금요일"에서 "2013-02-01"로 변환

현재 내가하고 있어요 :

public static String formatDate(String strDateToFormat) { 
    try { 
     SimpleDateFormat sdfSource = new SimpleDateFormat("EEEE, MMMM DD, YYYY"); 
     Date date = sdfSource.parse(strDateToFormat); 
     SimpleDateFormat sdfDestination = new SimpleDateFormat("yyyy-MM-dd"); 
     return sdfDestination.format(date); 
    } catch (ParseException pe) { 
     System.err.println("Parse Exception : " + pe); 
    } 

    return null; 
} 

그러나 이것은 잘못된 형식을 초래한다.

Friday, February 1, 2013 > 2013-01-04 
Thursday, January 31, 2013 > 2013-01-03 
+2

출력을 여러 번 반복 한 이유는 무엇입니까? –

+0

"yyyy"로 "DD"를 "yyyy"로 변경하십시오. –

+0

System.err.println ("Parse Exception :"+ pe);를'pe.printStackTrace(); '로 바꿉니다. 또는, 더 나은 방법은 해당 예외를 던지십시오. –

답변

9

당신은 DD을 사용하고있는 년의 일이다 파싱 부분에서 : 그것은 나에게 다음과 같은 출력을 제공합니다. 대신 dd을 원합니다. YYYY (주년) 대신 yyyy (년)을 원할 수도 있습니다. (대부분의 경우 같은 값이지만 항상 그런 것은 아닙니다.)

3

구문 분석 부분에서 DD를 사용합니다. 이는 일년 중 일입니다. 대신 dd를 원합니다. YYYY를 yyyy로 변경하십시오.

여기에서 모든 패턴을 찾을 수 있습니다.