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

java 系统时间 错误
代码如下:
Java code

import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
    public static void main(String[] args) {
          Date now=new Date();
          SimpleDateFormat f=new SimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分");
          System.out.println(f.format(now));
    }
}

运行结果:
今天是2008年11月26日 星期三 02点35分
我装的XP,右下角的时间是对的。IDE是Lomboz Eclipse,总是差8个小时。
假如用Timezone的话,这个时间就是对的。
这是什么原因呢?

------解决方案--------------------
SimpleDateFormat里面要有一个重要的参数的,好像是Symbol吧,这个对象和一个TImeZone是关联的。
你取得的时间是 0时区的时间。
------解决方案--------------------
我在eclipse下是显示的正常时间,可能和ide有关系吧。
SimpleDateFormat 有方法可以设置。
f.setTimeZone(TimeZone.)
------解决方案--------------------
这个确实跟 TImeZone 有关系

Java code

public static void method1(){
        SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
           //sdf.setTimeZone(TimeZone.getTimeZone("GMT-8"));//加这句的话时间-16个小时
           String s = sdf.format(new Date());
           System.out.println(s);
           //美国时间是我电脑上的时间,打印出来的是 东八区的时间
         //打印出来的东西, 跟我电脑上的时间不对, 慢16个小时,难道默认的不是东8区的? 是 cst的
    }

------解决方案--------------------
我设置的是中国大陆的。

你这么设的是中国大陆的?? 我的是 美国的
------解决方案--------------------
设时区就OK
------解决方案--------------------
Java code
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
    public static void main(String[] args) {
          Date now=new Date();
          SimpleDateFormat f=new SimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分");
          System.out.println(f.format(now));
    }
}
结果:今天是2008年11月26日 星期三 13点00分
结果正确.楼主用什么ide啊?eclipse应该就会了吧

------解决方案--------------------
我的结果也真确哇。。。。。。。。。。。。。
------解决方案--------------------
我的也没有问题。
------解决方案--------------------
时区是美国
------解决方案--------------------
我这也没问题,奇怪了
------解决方案--------------------
我的也没有问题啊
今天是2008年11月26日 星期三 15点03分