Calendarによるjava日付処理


取得時点が存在する日の開始時刻と終了時刻(From Quartz):
 
    protected java.util.Calendar getStartOfDayJavaCalendar(long timeInMillis) {
        java.util.Calendar startOfDay = createJavaCalendar(timeInMillis);
        startOfDay.set(java.util.Calendar.HOUR_OF_DAY, 0);
        startOfDay.set(java.util.Calendar.MINUTE, 0);
        startOfDay.set(java.util.Calendar.SECOND, 0);
        startOfDay.set(java.util.Calendar.MILLISECOND, 0);
        return startOfDay;
    }


    protected java.util.Calendar getEndOfDayJavaCalendar(long timeInMillis) {
        java.util.Calendar endOfDay = createJavaCalendar(timeInMillis);
        endOfDay.set(java.util.Calendar.HOUR_OF_DAY, 23);
        endOfDay.set(java.util.Calendar.MINUTE, 59);
        endOfDay.set(java.util.Calendar.SECOND, 59);
        endOfDay.set(java.util.Calendar.MILLISECOND, 999);
        return endOfDay;
    }

    protected java.util.Calendar createJavaCalendar(long timeStamp) {
        java.util.Calendar calendar = createJavaCalendar();
        calendar.setTime(new Date(timeStamp));
        return calendar;
    }



    /**
     *               。
     * 
     * @author zhangruimin
     * @return
     */
    public static Date getFirstDayInMonth(long timeInMillis) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date(timeInMillis));
        c.set(Calendar.DATE, 1);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        return java.sql.Date.valueOf(df.format(c.getTime()));
    }

    /**
     *                。
     * 
     * @author zhangruimin
     * @return
     */
    public static Date getLastDayInMonth(long timeInMillis) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date(timeInMillis));
        c.set(Calendar.DATE, 1);
        c.roll(Calendar.DATE, -1);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        return java.sql.Date.valueOf(df.format(c.getTime()));
    }

    /**
     *      (       )
     * @return
     */
    public static Date getCurrentSunday() {
        Calendar c = Calendar.getInstance();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        return java.sql.Date.valueOf(df.format(c.getTime()));
    }

 
同様に、週、月、年は同様に処理することができます.
 
 
get Day of week
 java.util.Calendar cl = createJavaCalendar(timeStamp);
        int wday = cl.get(java.util.Calendar.DAY_OF_WEEK);