java - 日历在滚动时跳过 8 月 31 日(Calendar.DATE,false)

标签 java android calendar

我有一个根据日期显示信息的程序。直到今天,一切都运行良好。由于某种原因,当日历回滚一天以获得昨天的日期时,它会直接进入 8 月 30 日。它跳过了 8 月 31 日。它会捕获今天的日期(9 月 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);

最佳答案

它不会转到上个月。它停留在同一个月(自己检查月份字段)。它只是改变了一个月中的某一天。你想使用 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);

关于java - 日历在滚动时跳过 8 月 31 日(Calendar.DATE,false),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3622634/

相关文章:

android - Android 布局的透明度会影响性能吗?

swift - 我如何从 NSDate 中找到一周的开始?

jquery - 在 jQuery 日历中突出显示数据库中的日期

algorithm - 星期几计算的小问题(一个世纪的基本世界末日)

java - 停止线程

java - 如何在 spring boot 中连接到 MongoDB?

java - 如何使用java代码检查服务是否正在linux机器上运行

java - GLSL 将循环数据存储在常量数组中

android - 如何在 TextInputLayout android 中更改设置 EndIcon Drawable 的可见性(可见、不可见或消失)?

android - 如何检测 AdMob 插页式广告已关闭?