Java 常用日期函数:获取当天日期、本周第一天等函数

来源:互联网 发布:洛丽塔淘宝店 编辑:程序博客网 时间:2024/05/17 09:43

简介: 日期函数在开发过程中经常需要用得到,需要转换日期,获取当天日期,本周第一天,本周最后一天等就需要用到这些函数。


清单: 日期工具类 DateUtils.java

    private static final String PATTERN_DATE = "yyyy-MM-dd";    private static final String PATTERN_TIME = "HH:mm:ss";    private static final String PATTERN_DATE_TIME = "yyyy-MM-dd HH:mm:ss";    private static final String PATTERN_DATE_CN = "yyyy年MM月dd日";    private static final String PATTERN_TIME_CN = "yyyy年MM月dd日 HH时mm分ss秒";    /**     * <b>字符串日期转换为日期类型 formatted as yyyy-MM-dd</b>     *      * @param date 字符串日期     * @return     * @throws Exception     */    public static Date parseDate(String dateValue) throws Exception {        if (dateValue == null) {            throw new IllegalArgumentException("date is null");        }        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        Date date = null;        try {            date = dateFormat.parse(dateValue);        } catch (ParseException e) {            throw new IllegalArgumentException(e);        }        return date;    }        /**     * 字符串日期转换为日期类型     *      * @param dateValue 字符串日期     * @param pattern 日期模式     * @return     * @throws Exception     */    public static Date parseDate(String dateValue, String pattern) throws Exception {        if (dateValue == null) {            throw new IllegalArgumentException("date is null");        }        if (pattern == null) {            throw new IllegalArgumentException("pattern is null");        }        DateFormat dateFormat = new SimpleDateFormat(pattern);        Date date = null;        try {            date = dateFormat.parse(dateValue);        } catch (ParseException e) {            throw new IllegalArgumentException(e);        }        return date;    }        /**     * <b>日期类型转换为字符串 formatted as yyyy-MM-dd</b>     *      * @param dateValue 日期类型     * @return     * @throws Exception     */    public static String formatDate(Date dateValue) throws Exception {        if (dateValue == null) {            throw new IllegalArgumentException("date is null");        }        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        String date = null;        try {            date = dateFormat.format(dateValue);        } catch (IllegalArgumentException e) {            throw new IllegalArgumentException(e);        }        return date;    }        /**     * 日期类型转换为字符串     *      * @param dateValue 日期类型     * @param pattern 日期模式     * @return     * @throws Exception     */    public static String formatDate(Date dateValue, String pattern) throws Exception {        if (dateValue == null) {            throw new IllegalArgumentException("date is null");        }        if (pattern == null) {            throw new IllegalArgumentException("pattern is null");        }        DateFormat dateFormat = new SimpleDateFormat(pattern);        String date = null;        try {            date = dateFormat.format(dateValue);        } catch (IllegalArgumentException e) {            throw new IllegalArgumentException(e);        }        return date;    }        /**     * <b>获取当前日期:formatted as yyyy-MM-dd</b>     *      * @return     */    public static String getCurrentDate() throws Exception {        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        return dateFormat.format(new java.util.Date());    }    /**     * <b>获取当前日期:</b>     *      * @param pattern 日期模式     * @return     */    public static String getCurrentDate(String pattern) throws Exception {        if (pattern == null) {            throw new IllegalArgumentException("pattern is null");        }        DateFormat dateFormat = new SimpleDateFormat(pattern);        return dateFormat.format(new java.util.Date());    }    /**     * <b>获取年份:根据日期</b>     *      * @param date 日期     * @return     */    public static String getYear(Date date) {        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        return String.valueOf(calendar.get(Calendar.YEAR));    }    /**     * <b>获取月份:根据日期</b>     *      * @param date     * @return     */    public static String getMonth(Date date) {        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        return String.valueOf(calendar.get(Calendar.MONTH) + 1);    }    /**     * <b>获取日:根据日期</b>     *      * @param date     * @return     */    public static String getDay(Date date) {        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        return String.valueOf(calendar.get(Calendar.DATE));    }    /**     * <b>获取本月最后一天:formatted as yyyy-MM-dd</b>     *      * @return     */    public static String getLastDayOfMonth() {        Calendar calendar = Calendar.getInstance();        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        calendar.set(Calendar.DATE, 1);        calendar.roll(Calendar.DATE, -1);        return dateFormat.format(calendar.getTime());    }        /**     * <b>获取本月最后一天:</b>     * @param date 日期     * @param pattern 日期模式     * @return     */    public static String getLastDayOfMonth(Date date, String pattern) {        Calendar calendar = Calendar.getInstance();        DateFormat dateFormat = new SimpleDateFormat(pattern);        calendar.setTime(date);        calendar.set(Calendar.DATE, 1);        calendar.roll(Calendar.DATE, -1);        return dateFormat.format(calendar.getTime());    }        /**     * <b>获取本月第一天:formatted as yyyy-MM-dd</b>     *      * @return     */    public static String getFirstDayOfMonth() {        Calendar calendar = Calendar.getInstance();        calendar.set(Calendar.DATE, 1);        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        return dateFormat.format(calendar.getTime());    }        /**     * <b>获取本月第一天:</b>     * @param date 日期     * @param pattern 日期模式     * @return     */    public static String getFirstDayOfMonth(Date date, String pattern) {        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.set(Calendar.DATE, 1);        DateFormat dateFormat = new SimpleDateFormat(pattern);        return dateFormat.format(calendar.getTime());    }    /**     * <b>获取本周星期一:formatted as yyyy-MM-dd</b>     *      * @return     */    public static String getMondayOfWeek() {        Calendar calendar = Calendar.getInstance();        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);        return dateFormat.format(calendar.getTime());    }    /**     * <b>获取星期一:根据指定日期和日期模式</b>     *      * @param date 日期     * @param pattern 日期模式     * @return     */    public static String getMondayOfWeek(Date date, String pattern) {        Calendar calendar = Calendar.getInstance();        DateFormat dateFormat = new SimpleDateFormat(pattern);        calendar.setTime(date);        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);        return dateFormat.format(calendar.getTime());    }    /**     * <b>获取本周星期天:formatted as yyyy-MM-dd</b>     * @return     */    public static String getSundayOfWeek() {        Calendar calendar = Calendar.getInstance();        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);        calendar.add(Calendar.WEEK_OF_YEAR, 1);        return dateFormat.format(calendar.getTime());    }    /**     * <b>获取星期天:根据指定日期和日期模式</b>     *      * @param date 日期     * @param pattern 日期模式     * @return     */    public static String getSundayOfWeek(Date date, String pattern) {        Calendar calendar = Calendar.getInstance();        DateFormat dateFormat = new SimpleDateFormat(pattern);        calendar.setTime(date);        calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);        calendar.add(Calendar.WEEK_OF_YEAR, 1);        return dateFormat.format(calendar.getTime());    }    /**     * <b>获取上周星期天:formatted as yyyy-MM-dd</b>     * @return     */    public static String getSundayOfLastWeek() {        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        Calendar calendar = Calendar.getInstance();        calendar.set(Calendar.DAY_OF_WEEK, 1);        return dateFormat.format(calendar.getTime());    }        /**     * <b>获取上周星期天:</b>     *      * @param date 日期     * @param pattern 日期模式     * @return     */    public static String getSundayOfLastWeek(Date date, String pattern) {        DateFormat dateFormat = new SimpleDateFormat(pattern);        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.set(Calendar.DAY_OF_WEEK, 1);        return dateFormat.format(calendar.getTime());    }    /**     * <b>获取上周星期一:formatted as yyyy-MM-dd</b>     * @return     */    public static String getMondayOfLastWeek() {        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.WEEK_OF_MONTH, -1);        calendar.set(Calendar.DAY_OF_WEEK, 2);        return dateFormat.format(calendar.getTime());    }        /**     * <b>获取上周星期一:</b>     *      * @param date 日期     * @param pattern 日期模式     * @return     */    public static String getMondayOfLastWeek(Date date, String pattern) {        DateFormat dateFormat = new SimpleDateFormat(pattern);        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.WEEK_OF_MONTH, -1);        calendar.set(Calendar.DAY_OF_WEEK, 2);        calendar.setTime(date);        return dateFormat.format(calendar.getTime());    }        /**     * <b>获取上月第一天:formatted as yyyy-MM-dd</b>     * @return     */    public static String getFirstDayOfLastMonth() {        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.MONTH, -1);        calendar.set(Calendar.DATE, 1);        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        return dateFormat.format(calendar.getTime());    }    /**     * <b>获取上月第一天:</b>     *      * @param date 日期     * @param pattern 日期模式     * @return     */    public static String getFirstDayOfLastMonth(Date date, String pattern) {        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.MONTH, -1);        calendar.set(Calendar.DATE, 1);        calendar.setTime(date);        DateFormat dateFormat = new SimpleDateFormat(pattern);        return dateFormat.format(calendar.getTime());    }    /**     * <b>获取上月最后一天:formatted as yyyy-MM-dd</b>     * @return     */    public static String getLastDayOfLastMonth() {        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.MONTH, -1);        calendar.roll(Calendar.DATE, -1);        DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);        return dateFormat.format(calendar.getTime());    }        /**     * <b>获取上月最后一天:</b>     *      * @param date 日期     * @param pattern 日期模式     * @return     */    public static String getLastDayOfLastMonth(Date date, String pattern) {        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.MONTH, -1);        calendar.roll(Calendar.DATE, -1);        calendar.setTime(date);        DateFormat dateFormat = new SimpleDateFormat(pattern);        return dateFormat.format(calendar.getTime());    }


原创粉丝点击