我有一个有时间的字符串。我需要将它四舍五入到最近的小时和最近的分钟。我如何在 Java 中做到这一点? 例如:String time="12:58:15"; 我需要将其四舍五入为 1:00:00 和 12:58:00
最佳答案
对于日历操作,您必须使用 Calendar 类。在你的情况下你会做这样的事情:
package test;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TestDate {
public static void main(String[] args) {
Calendar c = new GregorianCalendar();
c.set(Calendar.HOUR_OF_DAY, 12);
c.set(Calendar.MINUTE, 58);
c.set(Calendar.SECOND, 15);
Date d = c.getTime();
System.out.println("Start point: " + d.toString());
System.out.println("Nearest whole minute: " + toNearestWholeMinute(d));
System.out.println("Nearest whole hour: " + toNearestWholeHour(d));
}
static Date toNearestWholeMinute(Date d) {
Calendar c = new GregorianCalendar();
c.setTime(d);
if (c.get(Calendar.SECOND) >= 30)
c.add(Calendar.MINUTE, 1);
c.set(Calendar.SECOND, 0);
return c.getTime();
}
static Date toNearestWholeHour(Date d) {
Calendar c = new GregorianCalendar();
c.setTime(d);
if (c.get(Calendar.MINUTE) >= 30)
c.add(Calendar.HOUR, 1);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
return c.getTime();
}
}
结果:
Start point: Tue Nov 22 12:58:15 CET 2011
Nearest whole minute: Tue Nov 22 12:58:00 CET 2011
Nearest whole hour: Tue Nov 22 13:00:00 CET 2011
关于java - 在 Java 中,我们如何将时间四舍五入到最接近的小时和分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8233236/