如何将时间缩短到最近的四分之一和半小时的间隔?

时间:2013-02-23 19:03:25

标签: java date time rounding

有关如何修改以下代码段以使其适用于四分之一和半小时间隔的任何想法吗?

import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang.time.FastDateFormat;

public class DateRounding {
    public static void main(String[] args) {
        FastDateFormat formatter = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT;

        Date now = new Date();
        System.out.println("now = " + formatter.format(now));       

        // Get nearest second
        Date nearestSecond = DateUtils.round(now, Calendar.SECOND);
        System.out.println("nearestSecond = " + formatter.format(nearestSecond));

        // Get nearest minute
        Date nearestMinute = DateUtils.round(now, Calendar.MINUTE);
        System.out.println("nearestMinute = " + formatter.format(nearestMinute));

        // Get nearest hour
        Date nearestHour   = DateUtils.round(now, Calendar.HOUR);
        System.out.println("nearestHour = " + formatter.format(nearestHour));
    }
}

1 个答案:

答案 0 :(得分:0)

四分之一是15分钟= 15 * 60 * 1000毫秒。您可以将其中的一半添加到Date的长值中,除以它并再次相乘。

同样半小时。

也许你甚至可以做到

DateUtils.round(now, 15*60*1000);

为此,请咨询API doc