问题

这个问题在这里已有答案:

  • 如何检查日期对象是否等于昨天? 8个答案

以下函数生成今天的日期;我怎么能让它只生产昨天的日期?

private String toDate() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = new Date();    
        return dateFormat.format(date).toString();
}

这是输出:

2012-07-10

我只需要昨天的日期,如下所示。可以在我的功能中执行此操作吗?

2012-07-09

#1 热门回答(258 赞)

你正在减去错误的数字:

UseCalendarinstead:

private Date yesterday() {
    final Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, -1);
    return cal.getTime();
}

然后,将你的方法修改为以下内容:

private String getYesterdayDateString() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        return dateFormat.format(yesterday());
}

参见- IDEOne演示


#2 热门回答(38 赞)

你可以这样做:

private Date getMeYesterday(){
     return new Date(System.currentTimeMillis()-24*60*60*1000);
}

注意:如果你想要进一步向后日期乘以24 * 60 * 60 * 1000的天数,例如:

private Date getPreviousWeekDate(){
     return new Date(System.currentTimeMillis()-7*24*60*60*1000);
}

同样,你可以通过将值添加到System.currentTimeMillis()来获取将来的日期,例如:

private Date getMeTomorrow(){
     return new Date(System.currentTimeMillis()+24*60*60*1000);
}

#3 热门回答(8 赞)

Calendar cal = Calendar.getInstance();
   DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
   System.out.println("Today's date is "+dateFormat.format(cal.getTime()));

   cal.add(Calendar.DATE, -1);
   System.out.println("Yesterday's date was "+dateFormat.format(cal.getTime()));

使用Calender Api


原文链接