【发布时间】:2019-03-05 00:44:33
【问题描述】:
我想从今天(29/9/2018)开始添加 2 天,我使用:
val calendar = Calendar.getInstance()!!
calendar.set(CalendarDay.today().year, CalendarDay.today().month+1, CalendarDay.today().day)
calendar.add(Calendar.DAY_OF_MONTH, 2)
但是当我记录()它时,日期不是 2018 年 1 月 10 日,而是 2018 年 9 月 31 日
【问题讨论】:
-
Calendar.getInstance()返回已设置当前日期/时间的实例。 sn-p 中的第二行是不必要的,并且很可能是问题所在,因为在这种情况下,将月份加 1 是不正确的;即,CalendarDay.today().month+1不是您想要的。 -
我不知道,因为 CalendarDay.today().month 从 0 开始,我为它 +1
-
Calendar适用于从零开始的月份,这意味着它的set()方法也需要从零开始的月份。如果你需要一个“人类可读的”月份数字,你只会加 1。 -
1 天的差异可能是时区问题,例如当您以 UTC 记录日期并且您在伦敦东部并且对您来说是早上时,它仍然可能是 UTC 日期的前一天。
标签: android kotlin days java.util.calendar