1
關於如何修改以下代碼段以使其適用於季度和半小時的時間間隔的任何想法?如何將時間四捨五入到最近的四分之一和半小時的時間間隔?
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));
}
}
嗨!謝謝!然而,第一種解決方案的工作原理可能是請你幫助我解決第二個問題,即DateUtils.round(現在的15 * 60 * 1000);因爲它看起來更緊湊和優雅?目前,後者根本不起作用。 – user706838 2013-02-23 19:52:27
@eualin - 不知道DateUtils API,但我認爲round的第二個參數是一個毫秒數。在這種情況下,Calendar.SECOND將是1000,Calendar.Minute 60000等等。也許你甚至可以寫'15 * Calendar.MINUTE'。但是這應該在API文檔中 - 您可以**閱讀您使用的API的文檔,是嗎? – Ingo 2013-02-23 19:56:03
非常感謝答案,但'15 * Calendar.MINUTE'也不起作用?任何想法? – user706838 2013-02-23 20:31:41