`

解决java获取系统时间差8个小时

    博客分类:
  • JAVA
阅读更多

在WIN7下发现一些Java的程序获取系统时间比真实时间差了8个小时,怀疑是Java程序沿用了低版本的JDK,获取时间时取的GSM 0时区,而中国是GSM +8,所以查了8个小时,解决办法如下:

 

修改如下:

 

Date d = new Date();
  SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd  kk:mm:ss ");
  sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
  System.out.println(sdf.format(d));

 

  或者:

 Calendar now = Calendar.getInstance();
    now.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));//important
    System.out.println(now.get(Calendar.HOUR_OF_DAY));
    System.out.println(now.get(Calendar.MINUTE));
    System.out.println(now.get(Calendar.SECOND));

    

 

 

这样就可以了。

关键就是设置TimeZone: TimeZone.getTimeZone("Asia/Shanghai")

分享到:
评论
1 楼 793059909 2013-09-23  
TimeZone.getTimeZone("Asia/Shanghai")

相关推荐

Global site tag (gtag.js) - Google Analytics