今天在做项目时发现new Date()输出时间之后成为GMT时间
public static void main(String[] args) throws ParseException {
System.out.println(new Date());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date()));
}
输出结果为
Fri Oct 09 09:15:10 GMT 2015
2015-10-09 09:15:10
我们现在用的时间是北京时间,是CST。
最后发现,出现这种现象的原因是使用的jdk是1.5。当改为jdk1.6之后,生成的时间变为CST
Fri Oct 09 17:18:13 CST 2015
2015-10-09 17:18:13
jdk1.5下怎么输出CST时间呢。可以使用如下方法
public static void main(String[] args) throws ParseException {
System.out.println(new Date());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// CST(北京时间)在东8区
sdf.setTimeZone(TimeZone.getTimeZone("GMT+8"));
System.out.println(sdf.format(new Date()));
}
通过这种方法,可以把输出任意时区的时间。