어떤 이유로 나는 타임 스탬프를 올바르게 표시하는 데 항상 어려움을 겪고 있지만 어쨌든 여기에 내 문제가 있습니다.UTC 타임 스탬프를 로컬 장치 타임 스탬프로 변환
Calendar Provider API
에서 이벤트를 가져 오는 중이며 US Holidays
캘린더 이벤트와 같은 일부 이벤트는 UTC이므로 타임 스탬프가 장치에 있어야하는 것이 아닙니다 (장치가 해당 시간대에 있지 않은 경우).
나는이 1374105600000
의 타임 스탬프가 07/18/2013 00:00:00 UTC
이므로 7 월 18 일 UTC 자정에 있습니다. 내가 원하는 것은 로컬 장치 시간 자정에 7 월 18 일의 타임 스탬프입니다. 나는 UTC 타임 스탬프
long local = time+offset;
이 나에게 잘못된 시간을 제공이를 추가하는 경우
이
내가Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
cal.setTimeInMillis(time);
long offset = tz.getRawOffset(); //gives me -18000000 5hr difference since I am in EST which I think is actually wrong because it should be a 4hr difference now with DST
그래서 할 것입니다 july 17th at 3:00PM
나는 시간을 빼면
long local = time-offset;
나는 아직도 잘못된 시간을 얻는다. 그것은 나를 july 18th at 1:00AM
하지만 나에게 준다고 생각하지 않는다. 왜냐하면 사람들을 위해 일하지 않기 때문에 심지어 빼기도해야한다고 생각한다. +
시간대 차이.
무엇이 잘못 되었나요? 정확한 시간을 얻기 위해 올바른 오프셋을 얻을 수없는 이유는 무엇입니까?
나 또한 너무 Link