用java取当前时间时时分秒与真实时间不符

来源:百度知道 编辑:UC知道 时间:2024/06/25 12:48:30
public static void main(String[] arg) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String ly_time = sdf.format(new java.util.Date());
System.out.println("现在时间是:"+ly_time);

String ly_time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
System.out.println("现在时间是:"+ly_time1);
}
打印:
现在时间是:2009-01-05 12:10:24
现在时间是:2009-01-05 12:10:24

但实际时间是2009-01-05 20:10
为什么时分秒会与当前时间不符呢???
在有的机器上取得的时间就正确,但换成我的机器时分秒就不能正确显示
不同格式之间有制式的区别,能说得详细些么

我的经验告诉我:这是时区的问题,将时区里某项设置一下将可以解决此问题。

你用同一个对象取,不同格式之间有制式的区别

public static void main(String[] arg) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.CHINA);
String ly_time = sdf.format(new java.util.Date());
System.out.println("现在时间是:"+ly_time);

String ly_time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
System.out.println("现在时间是:"+ly_time1);
}

你把周围人的注册表(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation)
copy一份到你的电脑上,你的注册表有问题。

或者把一下代码复制到记事本上,后缀改为:1.reg,然后双击,点是。
如果还不行请联系我。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"Bias"=dword:fffffe20
"StandardName"="中国标准时间"
"StandardBias"=dword:00