如何在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

回到顶部