日期:2014-05-20  浏览次数:20662 次

请教有关java获取系统时间的问题:java.util.Date得到的时间与系统时间相差8小时.
Date   now=new   Date();

//获得具有默认语言环境的默认格式化风格的日期/时间   formatter
DateFormat   defaultFormatter=DateFormat.getDateTimeInstance();
//获得指定格式和语言环境的formatter
DateFormat   chinaFormatter=DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM,Locale.CHINA);
//获得东8区的formatter
DateFormat   gmt08Formatter=DateFormat.getDateTimeInstance();
TimeZone   timezone=TimeZone.getTimeZone( "GMT+08:00 ");
gmt08Formatter.setTimeZone(timezone);

//格式日期/时间
String   defaultDateTime=defaultFormatter.format(now);
String   chinaDateTime=chinaFormatter.format(now);
String   gmt08DateTime=gmt08Formatter.format(now);

System.out.print( "默认语言环境的时间:   ");
System.out.println(defaultDateTime);
System.out.print( "Locale.CHINA环境下的时间:   ");
System.out.println(chinaDateTime);
System.out.print( "东8区时间:   ");
System.out.println(gmt08DateTime);

结果如下:
默认语言环境的时间:   2007-4-11   5:57:49
Locale.CHINA环境下的时间:   2007-4-11   5:57:49
东8区时间:   2007-4-11   13:57:49

系统时期时间为:2007-04-11   星期三   14:00
控制面板中日期时间属性中时区如下:
(GMT+08:00)   北京,重庆,香港特别行政区,乌鲁木齐

为什么前两种方式得到的时间与系统时间相差8小时?
期待您的回复!
Email:xuyi_dj@163.com
QQ:278819255

------解决方案--------------------
在我机子上的运行结果是:

默认语言环境的时间: 2007-4-11 14:37:08
Locale.CHINA环境下的时间: 2007-4-11 14:37:08
东8区时间: 2007-4-11 14:37:08

不知道为什么会这样