Java获取昨天的日期,其实大部分人都用得不对:
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.DATE,-1);
String yesterdayDate=dateFormat.format(calendar.getTime());
这种方法是不对的,如果昨天是某月31日,则得到的是30日。比如今天6月1日,得到的昨天日期是5月30日。
正确姿势如下:
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,-24);
String yesterdayDate=dateFormat.format(calendar.getTime());
注意不要用Calendar.HOUR,这是12小时制,Calendar.HOUR_OF_DAY是24小时制。
本文纠正了常见的Java获取昨天日期的错误做法,并提供正确的实现方式。指出使用Calendar的DATE属性可能导致日期误差,推荐使用HOUR_OF_DAY属性减24小时来准确获取昨天的日期。

被折叠的 条评论
为什么被折叠?



