日历在8月31日跳过(Calendar.DATE,false)

时间:2010-09-01 22:43:14

标签: java android calendar

我有一个程序根据当天显示信息。直到今天,一切都很好。由于某种原因,当日历回滚一天以获得昨天的日期时,它会直接到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);

1 个答案:

答案 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);