6

可能重复:
使用 Date 获取昨天的日期

将 Java Date 对象的值设置为昨天的优雅方式是什么?

4

6 回答 6

18

你的意思是回到24小时的时间。

 Date date = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000L);

或在同一时间返回某一天(这可以是 23 或 25 小时,具体取决于夏令时)

 Calendar cal = Calendar.getInstance();
 cal.add(Calendar.DATE, -1); 

由于夏令时,这些并不完全相同。

于 2012-08-15T08:15:17.033 回答
18

乔达时间

  LocalDate today = LocalDate.now();
    LocalDate yesterday = today.minus(Period.days(1));

    System.out.printf("Today is : %s, Yesterday : %s", today.toString("yyyy-MM-dd"), yesterday.toString("yyyy-MM-dd"));
于 2012-08-15T08:15:29.890 回答
1

将 转换DateCalendar对象并将其“回滚”一天。像这个辅助方法这样的东西取自这里

public static void addDays(Date d, int days)
{
    Calendar c = Calendar.getInstance();
    c.setTime(d);
    c.add(Calendar.DATE, days);
    d.setTime(c.getTime().getTime());
}

对于您的具体情况,只需传入daysas即可-1。如果进行广泛的日期特定操作,请确保您考虑时区/语言环境。

于 2012-08-15T08:13:39.917 回答
0

您可以尝试以下示例将其设置为上一个日期。

Calendar cal = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
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()));
于 2012-08-15T08:15:35.793 回答
0
you can try the follwing code:
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())); 
于 2012-08-15T08:21:24.237 回答
0

正如许多人已经说过的那样,使用日历而不是日期。

如果你发现你真的想使用日期:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, -24);
cal.getTime();//returns a Date object

Calendar cal1 = Calendar.getInstance();
cal1.add(Calendar.DAY_OF_MONTH, -1);
cal1.getTime();//returns a Date object

我希望这有帮助。 汤姆雷德

于 2012-08-15T08:37:33.817 回答