1

次のスニペットを変更して、15 分間隔と 30 分間隔の両方で機能するようにする方法について何か考えはありますか?

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));
    }
}
4

1 に答える 1

0

1/4 は 15 分 = 15*60*1000 ミリ秒です。この半分を a の long 値に追加しDate、それで割り、再度乗算することができます。

同様に30分。

多分あなたもできる

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

これについては、API docを参照してください。

于 2013-02-23T19:08:14.093 に答える