我的电脑时间是正确的,但是通过new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date())这个方法获取的时间却对不上。比如现在是17:50分,System.out.print里面打印出来是09:50。什么情况?

解决方案 »

  1.   

    在“首选项- >Tomcat - >JVM Settings ”项,设定 JRE 的版本为“ jre1.5.0_06”,并且添加如下几个JVM Parameters :-Xms128m-Xmx512m-Dfile.encoding=UTF8-Duser.timezone=GMT+08或
    在catalina.bat(windows)/catalina.sh(linux)中 修改set JAVA_OPTS=%JAVA_OPTS%如下
    set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -Duser.timezone=GMT+08或
    找一台能正常设置时区windows注册表 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones],备份,覆盖.; 
      

  2.   

    在启动JAVA虚拟机时,你能很容易的通过使用 -D 命令 -line 参数的办法来覆盖(override)在java.lang.System.initProperties方法中所设置的值。例如: 
    Java代码  
    java -Duser.timezone=Asia/Shanghai DateTest  这个命令启动DateTest类,并设置 user.timezone属性到Asia/Shanghai。
      

  3.   

    你也能够通过使用java.lang.System 类的setProperty方法来设置user.timezone 属性: 
     
    System.setProperty("user.timezone","Asia/Shanghai");  
      
      

  4.   

    把下面的代码保存为“恢复系统标准时间.reg”文件Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "Bias"=dword:fffffe20 "StandardName"="中国标准时间" "StandardBias"=dword:00000000 "StandardStart"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "DaylightName"="中国标准时间" "DaylightBias"=dword:00000000 "DaylightStart"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "ActiveTimeBias"=dword:fffffe20 
    然后双击执行最后重新测试Java程序
      

  5.   

    你安装的 JDK 版本太低了。请告知你操作系统的版本,以及 JDK 的版本号。
      

  6.   

    额,我的系统版本是win7 64位旗舰版,JDK1.5的....
      

  7.   

    Tomcat本身调用的就是5.0的版本,加进去后,时间还是没变,而且控制台那边汉字都成乱码了....
      

  8.   


    你给的这个也叫版本号?查看 Windows 版本号:运行 --> cmd --> ver
    查看 Java 版本号:运行 --> cmd --> java -verison把显示的结果全部贴出来!
      

  9.   


    Microsoft Windows [版本 6.1.7600]
    java version "1.5.0"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
    Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)非常感谢您!