java获取GMT时间

一般情况下,使用SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z")获取的时间是Tue, 13 Feb 2018 08:13:38 CST时间,即北京标准时间。

而北京时间是比格林尼治时间要快8个小时的,所以格林尼治时间应该是Tue, 13 Feb 2018 00:13:38 GMT

如果想要获取GMT时间的话,应该这样做:

DateFormat dateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH); 
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
Date now = new Date(System.currentTimeMillis());
String date = dateFormat.format(now);
System.out.println(date);

在dateformat里面设置timezone为GMT

其中,使用SimpleDateFormat格式化时间的时候,用到了Locale.ENGLISH,主要是为了避免在中文环境下出现星期二, 13 二月 2018 00:13:38 GMT的里面含有中文字的情况,毕竟代码里面希望出现的都是英文或者数字。