2009-06-22 3 views
1

MySql 형식의 데이터를 구문 분석하려고 시도 할 때 SimpleDateFormat을 실행했습니다. 내가 적절한 날짜와 달 얻을 수 있습니다,하지만 난 그 해 이상한 결과를 얻었다 :Java에서 SimpleDateFormat을 사용하여 올해의 권리를 얻지 못하는 이유는 무엇입니까?

date = 2009-06-22; 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
Date d = sdf.parse(date); 
System.println(date); 
System.println(d.getDate()); 
System.println(d.getMonth()); 
System.println(d.getYear()); 

출력 :

2009-06-22 
22   OK 
5   Hum... Ok, months go from 0 to 11 
109   o_O WTF ? 

내가 YYYY-MM-dd의 형식을 변경하는 노력을 (가지고 오류) 및 yy-MM-dd (아무것도하지 않았다). Android에서 프로그래밍 중이며 중요한지 여부를 모릅니다.

지금은 나누기를 사용하지 않고 무시하지만 i18n 기능을 사용하지 못하게합니다.

답변

12

연도는 1900 년을 기준으로합니다. 이는 Date 클래스의 "기능"입니다. Calender을 사용해보십시오. 아론 오른쪽 버전

+0

좋아, 감사합니다,하지만 난 달력을 사용하여 날짜를 구문 분석 할 수있는 방법? –

+0

OK, 알겠습니다. 나는 대답을 게시 할 것이다. –

5

감사 :

Calendar c = Calendar.getInstance(); 
c.setTime(sdf.parse(date)); 
System.println(c.get(Calendar.YEAR)); 
관련 문제