本帖最后由 g1092407 于 2009-10-10 18:33:28 编辑

解决方案 »

  1.   

    默认的
    Date d = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String date = sdf.format(d);
    格式可以用SimpleDateFormat来弄,具体看api
      

  2.   


    我不是格式化的问题    我说的是 日期变化的问题 
    原始:Sat Dec 30 17:14:42 CST 1899
    现在:Sun Dec 31 07:14:42 CST 1899
      

  3.   

    看了下API:
    这里调用的是Date里面的parse(String s)方法,其中有一段解释:
    匹配 GMT、UT 或 UTC(忽略大小写)的任何单词都认为是指 UTC。 
    匹配 EST、CST、MST 或 PST(忽略大小写)的任何单词都被认为是指北美的时区,该时区分别比格林威治时间晚 5、6、7 或 8 小时。匹配 EDT、CDT、MDT 或 PDT(忽略大小写)的任何单词都被识别为在夏令时期间分别指相同的时区。这里"Sat Dec 30 17:14:42 CST 1899"对应的时间比格林威治时间晚6小时,
    北京时间比比格林威治时间早8小时。
    由于实际上date的值为当地的时间,即北京时间,因此时间在原来的基础上加了 6+8=14小时
      

  4.   

    Date  date = new Date("Sat Dec 30 17:14:42 CST 1899 GMT+8");
          System.out.println(date);
    过期的方法,使用的话加上时区偏移量,不加偏移量显示的是格林威治时间,你本机时区的东八区,比格林威治的少8个市区,所以+8