如何在Java中将时间四舍五入到最近的四分之一小时?
考虑到今天的时间,例如2:24 PM,我如何将其舍入为2:30 PM?
同样,如果时间是2:17 PM,如何将其舍入为2:15 PM?
回答:
回答:
您将需要使用取模来截断四分之一小时:
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);
以上是 如何在Java中将时间四舍五入到最近的四分之一小时? 的全部内容, 来源链接: utcz.com/qa/417821.html