java - 在Java中向日期添加一天时,不更新月份

标签 java date

我遇到了一个问题,需要更多帮助。

下面是我的代码块 -

public Date addDays(Date date, int days)
    {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.DATE, days); //minus number would decrement the days
        return cal.getTime();
    }


StartDate = "02/06/2016";
DateFormat df = new SimpleDateFormat("mm/dd/yyyy");
for (int i=0; i < 90; i++) {
                try{
                    rawStartDate = df.parse(StartDate);
                    formattedStartDate = df.format(rawStartDate);
                    String timeBookedForPerDay = startHour + ":" + startMin + ":" + startSlot + "-"
                            + endHour + ":" + endMin + ":" + endSlot;
                    bookedFor.put(formattedStartDate, timeBookedForPerDay);
                    rawNextDate = addDays(rawStartDate, 1);
                    StartDate = df.format(rawNextDate);
                }
                catch ( Exception ex ){
                }
            }

现在我遇到的问题是,直到二月为止,添加一天迭代工作正常。但是,当月份发生变化时,它会在同一个月开始迭代。

此外,在日期中添加日期并没有考虑月份的天数,即 2 月 29 日和 3 月 31 日。

任何指示,什么可以是更好的方法。

输出是(稍微截断)-

***Start Date***03/01/2016
***Start Date***03/02/2016
***Start Date***03/03/2016
***Start Date***03/04/2016
***Start Date***03/05/2016
***Start Date***03/06/2016
***Start Date***03/07/2016
***Start Date***03/08/2016
***Start Date***03/09/2016
***Start Date***03/10/2016
***Start Date***03/11/2016
***Start Date***03/12/2016
***Start Date***03/13/2016
***Start Date***03/14/2016
***Start Date***03/15/2016
***Start Date***03/16/2016
***Start Date***03/17/2016
***Start Date***03/18/2016
***Start Date***03/19/2016
***Start Date***03/20/2016
***Start Date***03/21/2016
***Start Date***03/22/2016
***Start Date***03/23/2016
***Start Date***03/24/2016
***Start Date***03/25/2016
***Start Date***03/26/2016
***Start Date***03/27/2016
***Start Date***03/28/2016
***Start Date***03/29/2016
***Start Date***03/30/2016
***Start Date***03/31/2016
***Start Date***03/01/2016
***Start Date***03/02/2016
***Start Date***03/03/2016
***Start Date***03/04/2016
***Start Date***03/05/2016
***Start Date***03/06/2016

我可以引用任何建议或指示或任何重复的问题吗?

谢谢

阿杰

最佳答案

以简单日期格式显示 mm 表示分钟 MM 代表月份,您的日期(月份)正在更新,但您看不到它,您看到的是分钟, 所以你应该编辑你的格式模式,例如

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");

关于java - 在Java中向日期添加一天时,不更新月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35241980/

相关文章:

java - 在 Java 中指示代码是从 IntelliJ/Eclipse 等还是命令行运行

java - 防止过度沮丧

java - 你能创建一个类实例数组吗?

sql - 获取开始日期和结束日期 - 从给定年份 yyyy 开始

sql-server - Delphi 6、ADO、MS 数据库 "Date"字段与 ftWideString 相同

java - 如何将时间设置为纪元时间java?

R:计算特定事件之间的时间差

java - 如何在权限请求完成之前正确暂停应用程序?

javascript - 将日期从 Python 转换为 Javascript

java - 如何在eclipse中获取conf.txt路径