jdk1.5在Windows7下的时区设置
在windows7里开发java程序,使用JDK1.5运行程序的时候,new Date()出来的当前时间和真实时间相差8小时。JDK1.6是不会出现这个问题的,问题就在于jdk1.5里读取时区的时候出现问题,没有读到中国的夏令时间。解决办法有两种
一、在代码前增加时间区域设置,如下:
DateFormat dateFormatterChina = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);//格式化输出
TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取时区
dateFormatterChina.setTimeZone(timeZoneChina);//设置系统时区
Date curDate = new Date();//获取系统时间
System.out.println(dateFormatterChina.format(curDate));
二、修改windows7注册表
运行regedit命令,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Time Zones\China Standard Time
新建一个字符串“mapId”,值为“-1,75”
网上一般推荐第二种方法,毕竟第二种不用改程序,我倒是觉得如果是全新开发程序的话,第一种方法也许会更好一点。有时候修改程序要比修改运行环境更安全。

浙公网安备 33010602011771号