我使用以下代码将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;
}
答案 0 :(得分:0)
我建议尝试
System.out.println(expectedSimpleDateFormat.getTimeZone());
查看该设备上的所有夏令时方案是否正确。