다른 비슷한 질문이 있다는 것을 알고 있지만 특정 시간대에서 현재 시간을 얻는 방법을 생각해 냈습니다. 그래서 그것이 맞는지 아닌지를 확인하고 싶었습니다. 돌봐주지 마.Java : 특정 시간대의 Calendar 객체로 현재 시간을 가져 오는 올바른 방법입니까?
Calendar cal = Calendar.getInstance();
// Assuming we want to get the current time in GMT.
TimeZone tz = TimeZone.getTimeZone("GMT");
cal.setTimeInMillis(calendar.getTimeInMillis()
+ tz.getOffset(calendar.getTimeInMillis())
- TimeZone.getDefault().getOffset(calendar.getTimeInMillis()));
// Calendar should now be in GMT.
위의 내용이 정확합니까? 나는 내 자신의 테스트를했고 예상대로 작동하는 것처럼 보였지만 Stack Overflow의 전문가들과 다시 한 번 확인하고 싶었습니다.
정확히 무엇이 필요합니까? 기본적으로 Calendar 내의 timeInMillis 값은 GMT의 Epoch 이후이므로 항상 timeInMillis 및 GMT offset을 사용하여 계산할 필요가 없습니다. 특정 TimeZone에서 (Calender.get()을 사용하여 날짜 또는 시간과 같은) 값을 가져와야하는 경우 calendar.setTimeZone()을 통해 TimeZone을 설정 한 다음 해당 시간대와 관련된 값을 가져옵니다. 표시 목적으로 만 DateFormat에서 직접 TimeZone을 설정할 수도 있습니다. –