之前做过的一个项目,提供给两个国家的用户。由于两个国家不在同一个时区,因此,项目中需要实现一个时区转换的方法进行系统中的时间显示。
附上代码(以下为北京时间与悉尼时间之间的互转):
//根据时区转换时间
private static String timeTransfer(String time, String NowTimeZone, String TargetTimeZone) {
if(StringUtil.isEmpty(time)){
return "";
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone(NowTimeZone));
Date date;
try {
date = simpleDateFormat.parse(time);
} catch (ParseException e) {
LOGGER.info("info", e);
return "0";
}
simpleDateFormat.setTimeZone(TimeZone.getTimeZone(TargetTimeZone));
return simpleDateFormat.format(date);
}
//北京时间转悉尼时间
public static String timeTransferCCTtoAEST(String time) {
return timeTransfer(time, "Asia/Shanghai", "Australia/Sydney");
}
//悉尼时间转北京时间
public static String timeTransferAESTtoCCT(String time) {
return timeTransfer(time, "Australia/Sydney", "Asia/Shanghai");
}