四舍五入
您将需要使用取模来截断四分之一小时:
Date whateverDateYouWant = new Date();Calendar calendar = Calendar.getInstance();calendar.setTime(whateverDateYouWant);int unroundedMinutes = calendar.get(Calendar.MINUTE);int mod = unroundedMinutes % 15;calendar.add(Calendar.MINUTE, mod < 8 ? -mod : (15-mod));
正如EJP所指出的,这也是可以的(替换最后一行,仅在日历宽松时有效):
calendar.set(Calendar.MINUTE, unroundedMinutes + mod);
改进之处
如果要精确,则还必须截断较小的字段:
calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);
您还可以使用DateUtils.truncate()从Apache的共享/郎做到这一点:
calendar = DateUtils.truncate(calendar, Calendar.MINUTE);



