场景:例如数据库里直接查出来的日期是‘Tue Jun 13 18:13:54 CST 2017 ’,正常的转换后的结果是‘2017-06-14 08:13:54’,结果相差14个小时 给我整的郁闷的不行 ,本来对这个CST,GMT这个时间都是模糊的,所以 我又上网查了大神的贴子,搞定后记录一下。
转换后如图(有误差):
造成误差原因:CST可以表示美国,澳大利亚,古巴,中国4个不同的时区,GMT代表格林尼治标准时间,由于中国在东8区 ,美国在西6区,东加西减 所以一共相差14个小时。由于Java日期转换采用的是美国时间,所以造成时间误差。
public static void main(String[] args) throws ParseException {
String time = "Tue Jun 13 18:13:54 CST 2017";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
String formatDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format( sdf.parse(time));
System.out.println(formatDate);
}
最终效果:
记录一下方便自己学习 建议最好用GMT时间 。
转载自:http://blog.csdn.net/liu1782291245/article/details/73332474