Java에서 SimpledateFormat을 사용하여 해를 올바르게 얻지 않는 이유는 무엇입니까?
-
06-07-2019 - |
문제
나는 데이터를 구문 분석하려고 노력했다 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));
제휴하지 않습니다 StackOverflow