代码如下: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的话,这个时间就是对的。
这是什么原因呢?

解决方案 »

  1.   

    SimpleDateFormat里面要有一个重要的参数的,好像是Symbol吧,这个对象和一个TImeZone是关联的。
    你取得的时间是 0时区的时间。
      

  2.   

    我在eclipse下是显示的正常时间,可能和ide有关系吧。
    SimpleDateFormat 有方法可以设置。
    f.setTimeZone(TimeZone.)
      

  3.   

    我查了下我的环境设置,我设置的是中国大陆的。按照楼上的说法可以解决这个问题,但是我想知道,这个问题要怎么解决,不需要设置TimeZone.
      

  4.   

    这个确实跟 TImeZone 有关系
    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的
    }
      

  5.   

    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应该就会了吧
      

  6.   

    我就不知道我哪里出问题了,我就想怎么设置正确,不用设置TimeZone就可以正确显示