안녕하세요 ~

앱을 개발하다 시간 계산하는 문제가 제기되여 이렇게 글을 올려봅니다.




문제는 아래와 같습니다.

로그인 한 시점으로 부터 7일 동안 자동로그인이 가능하고 그이후엔 다시 로그인 해야 하는 문제입니다.


현재 저는 로그인버튼 누를때 사건에서 

Calendar gameDate = null;

gameDate = Calendar.getInstance(Locale.KOREAN); // 현재 시간을 얻어온다

gameDate.add(Calendar.DATE, 7); // 7일 앞선 날자를 계산한다

lAvailableDate = gameDate.getTimeInMillis(); // 보관하기 위해 미리초로 변환


다음 남은 일수를 현시하기 위해서 아래와 같이 했습니다.

Calendar gameDate = null;

gameDate = Calendar.getInstance(Locale.KOREAN); // 현재 시간을 얻어온다

lLeaveDay = lAvailableDate  - gameDate.getTimeInMillis(); // 남은 시간을 알기 위해서 로그인 한 시간과 현재 시간 차

if ( lLeaveDay > 0 ) // 차이가 있다면

{

gameDate.setTimeInMillis(lLeaveDay ); // 일, 시간, 분, 초를 알기 위해서

일 = gameDate.get(Calendar.DATE);

시간 = gameDate.get(Calendar.HOUR_OF_DAY);

분 = gameDate.get(Calendar.MINUTE);

초 = gameDate.get(Calendar.SECOND);

}


그런데 오류는

분명 7일 부터 계수가 되여야 할것 같은데 즉

"6일 23시 59분 59초"

"6일 23시 59분 58초"

"6일 23시 59분 57초" ...

으로 되여야 할것 같은데 

"8일 8시 59분 59초"

"8일 8시 59분 58초"

"8일 8시 59분 57초" ...

로 현시 됩니다.


자세히 보니 폰의 시간대역을 GMT+0 으로 설정하면 정상동작하는데 현재 서울 GMT+9 로 설정하니 꼭 9시간이 플러스된 현재 상황이 나왔습니다.

수정할수 있는 방법을 좀 가르쳐 주세요. 수정불가능 할까요?




많은 고수님들 도와주시면 감사하겠습니다.