2016-09-15 5 views
3

다음 코드를 사용하여 UTC 시간을 장치의 현재 표준 시간대로 변환했습니다. 그것은 인도 표준시 (IST)에서 잘 작동합니다. 그러나 장치 시간대가 호주 시드니 인 경우 추가로 1 시간이 추가됩니다.SimpleDateFormat은 UTC 시간을 호주 표준 시간대로 변환 할 때 1 시간을 더합니다.

예를 들어, 2016-10-10T09 : 10 : 00과 같은 UTC 시간을 제공하고 변환하는 것은 오후 8:10이지만 실제로는 오후 7:10 PM이 필요합니다. 내 코드의 문제점은 무엇입니까?

public static String convertToLocalTimeFormat(String utcDateTimeString) { 
    SimpleDateFormat simpleDateFormat; 
    String formattedDateString = ""; 

    simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.getDefault()); 

    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
    Date parsedDateObject; 
    try { 
     parsedDateObject = simpleDateFormat.parse(utcDateTimeString); 
     SimpleDateFormat expectedSimpleDateFormat = new SimpleDateFormat("hh:mm a", Locale.getDefault()); 
     formattedDateString = expectedSimpleDateFormat.format(parsedDateObject); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
     return formattedDateString; 
    } 
    return formattedDateString; 
} 
+0

일광 절약 시간제? – Tibrogargan

+0

@Tibrogargan 예 ... 현재 호주에서는 호주 동부 표준시이지만 주어진 날짜는 10 월이므로 ... 10 월 1 일 이후 호주 동부 일광 시간이 있습니다. 그래서 1 시간 추가됩니다. 그러나 나는 지금 내가 입력 한 것과 같은 시간을 보여줄 필요가있다. – Ramprasad

답변

0

나는 모든 일광 절약 제도는 해당 장치에 올바른지 확인하려면

System.out.println(expectedSimpleDateFormat.getTimeZone()); 

을 시도 권합니다.

관련 문제