关于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) 北京……”,试试看行吗?