달력어플을 개발하여 마켓에서 배포하고 있습니다.

특정 스마트폰사용자들이 1900년도에 날짜를 입력하면 하루 전으로 저장된다고 불만을 호소하더군요.

현재 제가 사용하고있는 스마트폰이 모토글램인데, 모토글램에서는 아무문제가 없었기때문에 어떻게 손쓸방법이 없었는데...

프로요 업뎃하자마자 동일한현상이 모토글램에서도 발생하기 시작했습니다.

 

문제는 이렇습니다.

 

for(int i = 1900; i <= 2000; i++){
      Date date = new Date(i-1900, 0, 1);
      Log.d("TEST", i + " > " + date.toLocaleString());
     }

 

제가 원한 결과는 이런것이죠..

1900 > 1900. 1. 1. 오전 12:00:00

 

그런데 특정연도에서 실행결과가 참담하네요.

30분 또는 1시간이 당겨집니다...

 

1902 > 1901. 12. 31. 오후 11:30:00

1903 > 1902. 12. 31. 오후 11:30:00

1904 > 1903. 12. 31. 오후 11:30:00

1928 > 1927. 12. 31. 오후 11:30:00

1929 > 1928. 12. 31. 오후 11:30:00

1930 > 1929. 12. 31. 오후 11:30:00

1931 > 1930. 12. 31. 오후 11:30:00

1932 > 1931. 12. 31. 오후 11:30:00

1955 > 1954. 12. 31. 오후 11:00:00

1956 > 1955. 12. 31. 오후 11:00:00

1957 > 1956. 12. 31. 오후 11:00:00

1958 > 1957. 12. 31. 오후 11:00:00

1959 > 1958. 12. 31. 오후 11:00:00

1960 > 1959. 12. 31. 오후 11:00:00

1961 > 1960. 12. 31. 오후 11:00:00

1962 > 1961. 12. 31. 오후 11:30:00

1963 > 1962. 12. 31. 오후 11:30:00

1964 > 1963. 12. 31. 오후 11:30:00

1965 > 1964. 12. 31. 오후 11:30:00

1966 > 1965. 12. 31. 오후 11:30:00

1967 > 1966. 12. 31. 오후 11:30:00

1968 > 1967. 12. 31. 오후 11:30:00

 

믿었던 이클립스 에뮬레이터마저 1932년에서 오류를 뿜어내네요...

 

검색해보니 저와 비슷한문제로 고민하시는 분이 계신것 같은데.. (http://theeye.pe.kr/450)

이분이 말씀하신 SImpleDateFormat만의 문제는 아닌것같습니다 ㅠㅠㅠ

내장어플 "캘린더"에서도 문제가 있는 연도에 일정을 등록하면

30분또는 1시간 당겨져서 인식이 되고요,

희한하게 문제가 있는 연도는 12월이 30일까지밖에 없다고 나온답니다...

 

제조사에 버그수정 요청하는것밖에는 방법이 없는것일까요....