在java中怎样得到昨天的日期值呢?

解决方案 »

  1.   

    因为   Date   的   getDay   等方法都已经不推荐使用了,所以在日期需要计算的时候通常会选用   java.util.Calendar。   
        
      下面是一个取某个日期前一天的例子,用到了   java.text.SimpleDateFormat,仅仅是为了控制输出格式,对日期计算没有实际意义。   
        
      SimpleDateFormat   df   =   new   SimpleDateFormat("yyyy-MM-dd");   
        
      Calendar   c   =   Calendar.getInstance();       //   当时的日期和时间   
      System.out.println(df.format(c.getTime()));   
      int   d   =   c.get(Calendar.DAY_OF_MONTH);     //   取出“日”数   
      --d;                                                                       //   将“日”减一,即得到前一天   
      c.set(Calendar.DAY_OF_MONTH,   d);               //   将“日”数设置回去   
      System.out.println(df.format(c.getTime()));   
      c.set(Calendar.DAY_OF_MONTH,   0);               //   如果当前日期是1日的情况会怎么样?   
                                                                                    //   这里演示了这种情况(这里情况下1-1=0所以直接赋0值了)   
      System.out.println(df.format(c.getTime()));   //   这里打印了上个月的最后一天,嘿嘿,满意吧。 搜索到的
      

  2.   

    Date date=new Date() ;
    //当前时间
    date.setTime(date.getTime()-24*60*60*1000);
    然后把date根据你需要的格式再转换就可以了
    推荐用format函数,下面这个是我长用的,根据Date对象得到你要的格式的日期,
    下面的函数得到的格式是类似2006-12-14 18:07:36,具体你想要什么自己再改了
    public static String getTime(Date date) {
    String nowtime = null;
    SimpleDateFormat sdf = new SimpleDateFormat("",
    Locale.SIMPLIFIED_CHINESE);
    sdf.applyPattern("yyyy-MM-dd HH:mm:ss");
    nowtime = sdf.format(date);
    return nowtime;
    }现在时间都是表示 1970 年 1 月 1 日 00:00:00 GMT 以后的毫秒数
    就是一个long的数字,所以只要减去一天24小时就可以得到前一天
    虽然也有直接可以getDay() getMonth() 等等函数,但都已经过时不推荐用了,
      

  3.   

    calendar类有一个方法可以计算前n天时什么日期的方法。