引入依赖
org.apache.commons
commons-lang3
3.9
代码如下
/**
* 格林威治时区与北京时区转换
* 场景:输入格式为yyyyMMddHHmmss的格林威治日期字符串,
* 输出格式为yyyy-MM-dd HH:mm:ss的北京日期字符串
*
* @param timeStr
* @param type
* @return
*/
public static String GMTConverter(String timeStr, String type) {
try {
// 将格式为yyyyMMddHHmmss的格林威治日期字符串转为Date类型
Date date = DateUtils.parseDate(timeStr, new String[]{"yyyyMMddHHmmss"});
String patternTemplate = "yyyy-MM-dd HH:mm:ss";
// 将Date类型转化成格式为yyyy-MM-dd HH:mm:ss的字符串
String dateStr = DateFormatUtils.format(date, patternTemplate);
SimpleDateFormat formatGMT = new SimpleDateFormat(patternTemplate);
// 设置时区为格林威治
formatGMT.setTimeZone(TimeZone.getTimeZone(type));
// parse时会结合操作系统时区,为parse结果+8小时
Date dateParse = formatGMT.parse(dateStr);
SimpleDateFormat formatGMT8 = new SimpleDateFormat(patternTemplate);
String result = formatGMT8.format(dateParse);
return result;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
String result = GMTConverter("20200708000000", "GMT");
System.out.println(result);
}
输出结果