JAVA开发日期处理函数

来源:互联网 发布:php积分商城源码 编辑:程序博客网 时间:2024/06/05 12:45

在java开发过程中,经常会遇到关于日期处理的问题,那么下面把总结的java日期处理函数跟大家分享一下,相信对大家一定有帮助:

代码如下:

package com.jacky.myutil;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateUtil {    /**     * 格式化日期     *      * @param dateStr     *            字符型日期     * @param format     *            格式     * @return 返回日期     */    public static java.util.Date parseDate(String dateStr, String format)    {        java.util.Date date = null;        try        {            java.text.DateFormat df = new java.text.SimpleDateFormat(format);            String dt = dateStr.replaceAll("-", "/");            if ((!dt.equals("")) && (dt.length() < format.length()))            {                dt += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]", "0");            }            date = (java.util.Date) df.parse(dt);        }        catch (Exception e)        {        }        return date;    }    /**     * @param dateStr     * @return Date     */    public static java.util.Date parseDate(String dateStr)    {        return parseDate(dateStr, "yyyy/MM/dd");    }    /**     * 格式化输出日期     *      * @param date     *            日期     * @param format     *            格式     * @return 返回字符型日期     */    public static String format(java.util.Date date, String format)    {        String result = "";        try        {            if (date != null)            {                java.text.DateFormat df = new java.text.SimpleDateFormat(format);                result = df.format(date);            }        }        catch (Exception e)        {        }        return result;    }    public static String format(java.util.Date date)    {        return format(date, "yyyy/MM/dd");    }    /**     * 返回年份     *      * @param date     *            日期     * @return 返回年份     */    public static int getYear(java.util.Date date)    {        java.util.Calendar c = java.util.Calendar.getInstance();        c.setTime(date);        return c.get(java.util.Calendar.YEAR);    }    /**     * 返回月份     *      * @param date     *            日期     * @return 返回月份     */    public static int getMonth(java.util.Date date)    {        java.util.Calendar c = java.util.Calendar.getInstance();        c.setTime(date);        return c.get(java.util.Calendar.MONTH) + 1;    }    /**     * 返回日份     *      * @param date     *            日期     * @return 返回日份     */    public static int getDay(java.util.Date date)    {        java.util.Calendar c = java.util.Calendar.getInstance();        c.setTime(date);        return c.get(java.util.Calendar.DAY_OF_MONTH);    }    /**     * 返回小时     *      * @param date     *            日期     * @return 返回小时     */    public static int getHour(java.util.Date date)    {        java.util.Calendar c = java.util.Calendar.getInstance();        c.setTime(date);        return c.get(java.util.Calendar.HOUR_OF_DAY);    }    /**     * 返回分钟     *      * @param date     *            日期     * @return 返回分钟     */    public static int getMinute(java.util.Date date)    {        java.util.Calendar c = java.util.Calendar.getInstance();        c.setTime(date);        return c.get(java.util.Calendar.MINUTE);    }    /**     * 返回秒钟     *      * @param date     *            日期     * @return 返回秒钟     */    public static int getSecond(java.util.Date date)    {        java.util.Calendar c = java.util.Calendar.getInstance();        c.setTime(date);        return c.get(java.util.Calendar.SECOND);    }    /**     * 返回毫秒     *      * @param date     *            日期     * @return 返回毫秒     */    public static long getMillis(java.util.Date date)    {        java.util.Calendar c = java.util.Calendar.getInstance();        c.setTime(date);        return c.getTimeInMillis();    }    /**     * 返回字符型日期     *      * @param date     *            日期     * @return 返回字符型日期     */    public static String getDate(java.util.Date date)    {        return format(date, "yyyy/MM/dd");    }    /**     * 返回字符型时间     *      * @param date     *            日期     * @return 返回字符型时间     */    public static String getTime(java.util.Date date)    {        return format(date, "HH:mm:ss");    }    /**     * 返回字符型日期时间     *      * @param date     *            日期     * @return 返回字符型日期时间     */    public static String getDateTime(java.util.Date date)    {        return format(date, "yyyy/MM/dd HH:mm:ss");    }    /**     * 日期相加     *      * @param date     *            日期     * @param day     *            天数     * @return 返回相加后的日期     */    public static java.util.Date addDate(java.util.Date date, int day)    {        java.util.Calendar c = java.util.Calendar.getInstance();        c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);        return c.getTime();    }    /**     * 日期相减     *      * @param date     *            日期     * @param date1     *            日期     * @return 返回相减后的日期     */    public static int diffDate(java.util.Date date, java.util.Date date1)    {        return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000));    }    /**     * 取得指定月份的第一天     *      * @param strdate     *            String     * @return String     */    public static String getMonthBegin(String strdate)    {        java.util.Date date = parseDate(strdate);        return format(date, "yyyy-MM") + "-01";    }    /**     * 取得指定月份的最后一天     *      * @param strdate     *            String     * @return String     */    public static String getMonthEnd(String strdate)    {        java.util.Date date = parseDate(getMonthBegin(strdate));        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.add(Calendar.MONTH, 1);        calendar.add(Calendar.DAY_OF_YEAR, -1);        return formatDate(calendar.getTime());    }    /**     * 常用的格式化日期     *      * @param date     *            Date     * @return String     */    public static String formatDate(java.util.Date date)    {        return formatDateByFormat(date, "yyyy-MM-dd");    }    /**     * 以指定的格式来格式化日期     *      * @param date     *            Date     * @param format     *            String     * @return String     */    public static String formatDateByFormat(java.util.Date date, String format)    {        String result = "";        if (date != null)        {            try            {                SimpleDateFormat sdf = new SimpleDateFormat(format);                result = sdf.format(date);            }            catch (Exception ex)            {                ex.printStackTrace();            }        }        return result;    }        /**     *格式化日期     */    public static void DataFormat() {      Date now=new Date();       SimpleDateFormat f=new SimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分");       System.out.println(f.format(now));             f=new SimpleDateFormat("a hh点mm分ss秒");       System.out.println(f.format(now));     }        /**     *  从字符串到日期类型的转换:     */    public static void strToDate() {      String strDate="2005年04月22日";       //注意:SimpleDateFormat构造函数的样式与strDate的样式必须相符       SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日");       //必须捕获异常       try       {       Date date=simpleDateFormat.parse(strDate);       System.out.println(date);       }       catch(ParseException px)       {       px.printStackTrace();       }     }        /**     * 将毫秒数换转成日期类型      */    public static void millisToDate() {      long now=System.currentTimeMillis(); //获取毫秒时间      System.out.println("毫秒数:"+now);       Date dNow=new Date(now);       System.out.println("日期类型:"+dNow);     }    }