请问,java取时间方法:Calendar.getInstance().getTime(),再利用SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");进行格式化
    一般情况都没有遇到问题
    现在在windows server 2008上遇到问题,显示时间和机器时间显示不相符,测试看了看,也没规律
    请问有什么办法可以解决吗?
    是2008的一个BUG?
    

解决方案 »

  1.   

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
    label.setText(“时间”+ sdf.format(Calendar.getInstance().getTime()));
    这是代码
    也是今天才遇到这个问题
    这个代码一致没事啊
    都部署了很多机器了

      

  2.   

    如果你要看看中国的时间  你可以这样Calendar.getInstance(Locale.CHINA).getTime())
      

  3.   

    Calendar.getInstance(Locale.CHINA).getTime())
    并将windows的时区设置为 GMT+08:00 也就是北京时区
      

  4.   

    http://topic.csdn.net/u/20070821/10/8ac96c42-8543-49cd-ac0c-68a3c2a6ca70.html
    谢谢各位的回答
    参考上面的帖子
    正在解决问题中
    解决后我会把解决方式贴上来
    稍等
    再次感谢
      

  5.   

    找到个解决办法,但并不理想
    先贴上来
                            Date   nowTime   =   new   Date(); 
    SimpleDateFormat   matter1   =   new   SimpleDateFormat( "yyyy-MM-dd   HH:mm:ss   z ");
    matter1.setTimeZone(TimeZone.getTimeZone( "GMT+8")); //这行最为关键
    System.out.println( "现在的时间 "   +   matter1.format(nowTime));
    分析一下:
    如果没有第三行代码,默认时区为CST格式,在XP上显示时间正确,但在Windows Server 2008上有问题
    测试后发现,通过通常的方法Locale.getDefault()或者TimeZone.getDefault()在Windows Server 2008始终显示时区为GMT +0,无法获得真正的时区
    现在通过第三行代码,指定采用GMT+8时区的时间显示
    解决不理想,原因有二:
    1、原有代码需要变动,若客户转换时区,还需要在属性档添加新的属性
    2、代码里指定时区,而不是通过通常的办法,让代码自行获得所在的时区先不结贴,看是否有朋友能再帮我解答一下
    谢谢了
    回复:8楼和11楼的朋友提供的方法,通过Locale.CHINA指定,没有效果,在2008上仍然显示GMT+0的时间,不是GMT+8的时间
      

  6.   

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss").format(object)
      

  7.   

    我在VISTA下载发也遇到这个问题没有找到好的办法解决,也不想改代码偿试过改系统时区,但系统时区本来就正确的不知道java怎么取的时间
      

  8.   

    最后:
        安装JDK最新版本 JDK 6 UPDATE 10后,成功!
        代码不需要更改
        OH YEAH!
      

  9.   

    没有用过windows server 2008  倒是很先进的.......
      

  10.   

    yyyy-MM-dd HH:mm:ss 注意大小写