我有一个程序根据当天显示信息。直到今天,一切都很好。由于某种原因,当日历回滚一天以获得昨天的日期时,它会直接到8月30日。它在8月31日跳过。它会抓住今天的日期(第1章),但当我追踪它时,它会超过31日。有人对我做错了什么或者更好的方法吗?这是我的代码
Calendar date2;
date2 = Calendar.getInstance();
mday1 = date2.get(Calendar.DATE);
date2.roll(Calendar.DATE, false); //rolls back the date by one day
mday2 = date2.get(Calendar.DATE);
答案 0 :(得分:3)
它没有上个月。它保持在同一个月(自己检查月份字段)。它只是改变了一个月的日子。您想使用Calendar#add()
代替负值。
Calendar date2;
date2 = Calendar.getInstance();
mday1 = date2.get(Calendar.DATE);
date2.add(Calendar.DATE, -1); //rolls back the date by one day
mday2 = date2.get(Calendar.DATE);