我正在尝试将GMT时间转换为本地设备时区。但GMT时间
String res;
TimeZone tz = TimeZone.getDefault();
String strTimeZone = tz.getDisplayName(false, TimeZone.SHORT);
SimpleDateFormat sdfgmt = new SimpleDateFormat("HH:mma");
sdfgmt.setTimeZone(TimeZone.getTimeZone("GMT"));
SimpleDateFormat sdfmad = new SimpleDateFormat("HH:mma");
sdfmad.setTimeZone(TimeZone.getTimeZone(strTimeZone));
String inpt = "09:00am";
Date inptdate = null;
try {
inptdate = sdfgmt.parse(inpt);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("GMT:\t\t" + sdfgmt.format(inptdate));
System.out.println("Current Time:\t" + sdfmad.format(inptdate));
res = sdfmad.format(inptdate);
GMT时间返回00:00 am。我无法将上午9:00的gmt时间转换为本地设备时区(GMT + 5:30)
答案 0 :(得分:0)
试试这个:
String inpt = "09:00amZ";
Date date = null;
try {
date = new SimpleDateFormat("HH:mmaX").parse(inpt);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SimpleDateFormat sdf = new SimpleDateFormat("HH:mma");
sdf.setTimeZone(TimeZone.getTimeZone("GMT+05:30"));
System.out.println(sdf.format(date));
务必添加" Z"在输入结束时告诉这个时间是在GMT时区。
如果您需要默认设备时区而不是硬编码,请替换sdf.setTimeZone(TimeZone.getTimeZone("GMT+05:30"));
按sdf.setTimeZone(TimeZone.getDefault());