【发布时间】:2012-08-15 08:11:43
【问题描述】:
【问题讨论】:
标签: java
【问题讨论】:
标签: java
你的意思是回到 24 小时前吗?
Date date = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000L);
或在同一时间返回某一天(这可以是 23 或 25 小时,具体取决于夏令时)
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
由于夏令时,这些并不完全相同。
【讨论】:
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"));
【讨论】:
LocalDate.now().minusDays( 1 )
将Date 转换为Calendar 对象并将其“回滚”一天。类似这个辅助方法的东西取自here:
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());
}
对于您的具体情况,只需将days 传递为-1 即可。如果进行大量的特定日期操作,请确保您考虑到时区/语言环境。
【讨论】:
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()));
【讨论】:
正如许多人已经说过的那样,使用日历而不是日期。
如果你发现你真的想使用日期:
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
我希望这会有所帮助。 tomred
【讨论】:
您可以尝试以下示例将其设置为上一个日期。
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()));
【讨论】: