我需要从当前日期开始到5个月前的某个月的第一天,我使用此代码来做到这一点:
val date = Calendar.getInstance()
date.add(Calendar.MONTH, -5)
date.set(Calendar.DAY_OF_MONTH, 1)
date.set(Calendar.HOUR_OF_DAY, 0)
date.set(Calendar.MINUTE, 0)
date.set(Calendar.SECOND, 0)
通常正常,可以从2018-08-10T15:46:53+02:00
到需要的2018-03-01T00:00:00+01:00
但是,如果我将时区更改为GMT + 7,请恢复应用程序并运行此代码,它会在需要几天前给我一个奇怪的结果:2018-02-28T20:00:00+01:00
。
如果我从内存中删除应用,然后在更改时区后重新启动,一切正常。
答案 0 :(得分:1)
使用库JodaTime,您的代码将如下所示:
DateTime now = DateTime.now();
DateTime fiveMonthsAgo= now.minusMonths(5);
否则,您必须在必要时手动减去年份。