Java에서 SimpledateFormat을 사용하여 해를 올바르게 얻지 않는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1028139

문제

나는 데이터를 구문 분석하려고 노력했다 MySql 형식, 나는 가로 질러 달렸다 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 기능을 사용하지 못하게합니다.

도움이 되었습니까?

해결책

올해는 1900 년과 관련이 있습니다. 그것은 "기능"입니다. Date 수업. 사용하려고 노력하십시오 Calender.

다른 팁

올바른 버전 인 Aaron에게 감사합니다.

Calendar c = Calendar.getInstance(); 
c.setTime(sdf.parse(date));
System.println(c.get(Calendar.YEAR));
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top