将UTC时间转换为澳大利亚时区时,SimpleDateFormat会增加1小时

时间:2016-09-15 07:23:48

标签: java android android-date

我使用以下代码将UTC时间转换为设备当前时区时间。它适用于印度标准时间(IST)。但是当设备时区是澳大利亚悉尼时,它还增加了1小时。

例如,我给UTC时间像2016-10-10T09:10:00,它转换为晚上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;
}

1 个答案:

答案 0 :(得分:0)

我建议尝试

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

查看该设备上的所有夏令时方案是否正确。