Как округлить время до ближайшего квартала с получасовым интервалом?
Любая идея о том, как изменить следующий фрагмент, чтобы он работал с интервалами в четверть и полчаса?
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 ответ
Четверть 15 минут = 15*60*1000 миллисекунд. Вы можете добавить половину этого к длинному значению Date
, разделите на это и умножьте снова.
Точно так же в течение получаса.
Может быть, вы даже можете сделать
DateUtils.round(now, 15*60*1000);
Для этого обратитесь к документации API.