某一服务需要在GMT时间 8:00时候运行,所以要得到当前系统时间,转换为GMT的时间。
Calendar defaultCalendar = Calendar.getInstance();
TimeZone defaultTimeZone = defaultCalendar.getTimeZone();
int offset = defaultTimeZone.getRawOffset();
Calendar GMTCalendar = Calendar.getInstance();
// 如果offset为正,说明当前时区是GMT+,需要减回去。
// 如果offset为负,说明当前时区是GMT-,需要加回来。
// 所以,这里为-offset
GMTCalendar.add(Calendar.MILLISECOND, -offset);
System.out.println(defaultCalendar.getTime() + " " + defaultCalendar.getTimeZone().getID()
+ " " + defaultCalendar.getTimeZone().getDisplayName());
System.out.println(GMTCalendar.get(Calendar.YEAR) + " " + GMTCalendar.get(Calendar.MONTH)
+ " " +GMTCalendar.get(Calendar.DAY_OF_MONTH)+ " " + GMTCalendar.get(Calendar.HOUR_OF_DAY)
+ " " +GMTCalendar.getTime());