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

关于Date的一个非常奇怪的现象!
同一个程序,为什么我的机子上运行结果和别人不一样?
我的是:   Thu   Jun   21   02:47:39   ACT   2007
Acre   时间:2007-06-21   02:47:39

别人的是:   Thu   Jun   21   15:51:20   CST   2007
中国标准时间:2007-06-21   15:51:20

代码如下:
import   java.util.Calendar;
import   java.util.Locale;
import   java.util.TimeZone;
import   java.text.SimpleDateFormat;

public   class   DateTest{  

public   static   void   main(String[]   args)   {
Calendar   cal   =   Calendar.getInstance();
System.out.println(cal.getTime());
TimeZone   tzCN   =   TimeZone.getDefault();  
Locale   locCN   =   Locale.CHINA;
Calendar   calCN   =   Calendar.getInstance(tzCN);
SimpleDateFormat   sdf   =   new   SimpleDateFormat( "yyyy-MM-dd   HH:mm:ss ");
sdf.setCalendar(calCN);
System.out.println(tzCN.getDisplayName(locCN)   +   ": "   +   sdf.format(cal.getTime()));
}
}

------解决方案--------------------
程序运行不是在同一台机器上运行的吧,Calendar只会捕捉当前你的JVM中的系统时间,运行环境不一样,时间日期不一样,这很正常~~~
------解决方案--------------------
ms时区错误了
------解决方案--------------------
有可能你机器的系统时区被改了。双击右下角的时间,打开“日期和时间属性”找到“时区”选项卡,将时区改为 “(GMT+08:00) 北京……”,试试看行吗?