2012-08-28 4 views
0

영국 및 아일랜드 거주자 만 사용하는 Android 앱이 있으며이 앱을 해외에서 사용할 계획이 없습니다.날짜가 long으로 저장되고 시간대가 변경되면 Android 불일치가 발생합니다.

앱에서 나는 다양한 시간대를 저장할 수 있습니다.하지만 시간을 포함하여 전체 시간 기록표가 필요하지는 않지만 날짜가 필요합니다.

날짜를 쉽게 비교할 수 있도록 캘린더 개체를 만들고 시간 값을 지우고 그 밀리 초를 사용하여 데이터베이스에 저장했습니다.

public Calendar clearCalTime(long l) { 
    Calendar cal = Calendar.getInstance(); 
    cal.setFirstDayOfWeek(Calendar.MONDAY); 
    cal.setTimeInMillis(l); 
    cal.clear(Calendar.HOUR); 
    cal.clear(Calendar.HOUR_OF_DAY); 
    cal.clear(Calendar.MINUTE); 
    cal.clear(Calendar.SECOND); 
    cal.clear(Calendar.MILLISECOND); 
    return cal; 
} 

문제

이 된 것을 사용자가 날짜가 잘못된 일에 물건을 저장하여 예컨대, 엉망으로 시작 어떤 이유로 시간대를 변경하는 경우. 시간대는 무엇이든 될 수 있으며 사용자가 설정 한 것을 제어 할 수는 없습니다.

나는 시간대를 UTC로 설정하려고 시도했지만이 방법은 작동하지 않습니다. 시간대를 그냥 무시할 수있는 방법이 있습니까?

답변

0

아니요. 당신은 TimeZone을 당신의 저장 공간에 들락날락하게 설정해야 할 것입니다.

이 작업을 수행해야합니다 :

Calendar c = new GregorianCalendar(TimeZone.getTimeZone("GMT")); 

을 코드에 일관성을 유지 할 수 있습니다.

이 SO 참조 : 복잡한 날짜/시간 수학을 처리 할 때 Java.util.Calendar - milliseconds since Jan 1, 1970

또는 Joda Time을 사용합니다.

+0

감사합니다. 시간대를 계속 어지럽히고, 일부 장소에서 수동으로 설정했습니다. –

+0

이상한 점은 시간대가 -x로 설정되었을 때 올바른 것으로 보이지만 + x로 설정하면 날짜가 올바르지 않습니다 ... –

관련 문제