Date d=new Date(tt);
多看看JDK的文档

解决方案 »

  1.   

    多谢 flyxxxxx(灭神) ,我刚发完贴就找到了。嘿嘿。还是先多吸引几个人进来再揭帖。:)
      

  2.   

    构造一个 Calendar ,然后调用 setTimeInMillis(long) 方法再用getTime() 返回一个Date
      

  3.   

    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(System.currentTimeMillis() - 5*24*3600);
    Date date = cal.getTime();然后就可以转换格式了没尝试过,不知道能不能成功:)
      

  4.   

    已搞定:         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String dt1 = sdf.format(new Date(System.currentTimeMillis()));
    String dt2 = sdf.format(new Date(System.currentTimeMillis()-5*24*3600*1000)); out.println(dt1+"   :   "+dt2);         Result:         2004-09-23 17:30:33   :   2004-09-18 17:30:33
      

  5.   

    顶!为什么 24天 的时候正常,等于25或以上就不正常了??import java.text.*;
    import java.util.*;public class TT
    {
    public static void main(String[] args) 
    {
    int day = 24;
    Date dt1 = new Date(System.currentTimeMillis());
    Date dt2 = new Date(System.currentTimeMillis()-day*24*3600*1000);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String st1 = sdf.format(dt1);
    String st2 = sdf.format(dt2); System.out.println(st1+"\n"+st2);
    }
    }
    ---------- run ----------
    2004-09-23 21:24:56
    2004-08-30 21:24:56Output completed (0 sec consumed) - Normal Termination
    ------------ 25
    import java.text.*;
    import java.util.*;public class TT
    {
    public static void main(String[] args) 
    {
    int day = 25;
    Date dt1 = new Date(System.currentTimeMillis());
    Date dt2 = new Date(System.currentTimeMillis()-day*24*3600*1000);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String st1 = sdf.format(dt1);
    String st2 = sdf.format(dt2); System.out.println(st1+"\n"+st2);
    }
    }
    ---------- run ----------
    2004-09-23 21:29:51
    2004-10-18 14:32:38Output completed (0 sec consumed) - Normal Termination
      

  6.   

    这个涉及到int取值范围问题,day为int类型,那么day*24*3600*1000就被当作int进行处理了。而day等于25的时候就超过了原来的取值范围而变成了负值。所以你定义为long day=25应该就没有问题了。
      

  7.   

    25就超过范围??不是吧??24*24*3600*1000=2073600000 , 25*..=2160000000 ,看不出来超过范围啊??
    换成 long day ,果然就算等于300,3000也正确了。谢谢ygc(狒狒) !!!
    那么最后问题: 范围是怎样界定的??