JAVA 日期工具类

来源:互联网 发布:面试 知乎 编辑:程序博客网 时间:2024/05/02 07:26

封装一些常用操作,获取时间等。不然每次转一下也挺麻烦


import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class DateUtil {        /**     * 返回日期:yyyyMMddHHmmss格式的字符串     */    public static String getStrOfDate() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 获取当前日期时间 返回日期:yyyy-MM-dd HH:mm:ss     *      * @author WikerYong     * @version 2012-1-9 上午09:47:39     * @return     */    public static String getStrOfDateTime() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 字符串转为日期类型,返回yyyy-MM-dd HH:mm:ss格式     *      * @author WikerYong Email:<a href="#">yw_312@foxmail.com</a>     * @version 2012-7-5 下午04:33:49     * @param str     * @return     */    public static Date getDateByStr(String str) {        Date date = new Date();        try {            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");            date = formatter.parse(str);        } catch (ParseException e) {            e.printStackTrace();        }        return date;    }        /**     * 获取当前日期时间 返回日期:yyyy-MM-dd HH:mm     *      * @author WikerYong Email:<a href="#">yw_312@foxmail.com</a>     * @version 2012-1-31 下午02:57:30     * @return     */    public static String getStrOfDateMinute() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 返回日期:yyyyMMddHHmmssSSS格式的字符串     *      * @author WikerYong     * @version 2011-11-25 下午07:18:44     * @return     */    public static String getStrOfMs() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSS");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 返回日期:yyyyMM格式的字符串     */    public static String getMonthFolder() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMM");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 返回日期:yyyyMM格式的字符串     */    public static String getDateFolder() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 获取当前月份     *      * @author WikerYong Email:<a href="#">yw_312@foxmail.com</a>     * @version 2012-4-9 上午10:45:28     * @return     */    public static String getMonth() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("MM");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 获取当前年份     *      * @author WikerYong Email:<a href="#">yw_312@foxmail.com</a>     * @version 2012-7-5 下午04:31:07     * @return     */    public static String getYear() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyy");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 返回日期:yyyyMMddHH格式的字符串     *      * @author WikerYong     * @version 2011-12-20 下午03:43:14     * @return     */    public static String getDataOfHour() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHH");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 返回时间:yyyyMMddHHmm格式     */    public static String getStrOfTime() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmm");        String dateString = formatter.format(currentTime);        return dateString;    }        /**     * 返回时间:yyyy-MM-dd格式     */    public static String getCurrentDay() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");        String dateString = formatter.format(currentTime);        return dateString;    }        public static String getLastDay(int day) {        java.util.Date yestoday = new java.util.Date(new java.util.Date().getTime() - 1000 * 60                * 60 * 24 * day);        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        return sdf.format(yestoday);    }        /**     * 获取昨天、前天的日期     *      * @param currentDate     * @return     */    public static String[] getLastDates(String currentDate) {        String currYear, currMonth, currDay;        currYear = currentDate.substring(0, 4);        currMonth = currentDate.substring(4, 6);        currDay = currentDate.substring(6);                // 月份或日期首位是0        String tempMonth, tempDay;        if (currMonth.substring(0, 1).equals("0")) {            tempMonth = "0";        } else {            tempMonth = "";        }        if (currDay.substring(0, 1).equals("0") || currDay.equals("10")) {            tempDay = "0";        } else {            tempDay = "";        }                String returnDays[] = new String[2];                if (currMonth.equals("01") && currDay.equals("01")) {            returnDays[0] = (Integer.parseInt(currYear) - 1) + "1231";            returnDays[1] = (Integer.parseInt(currYear) - 1) + "1230";        } else if (currMonth.equals("01") && currDay.equals("02")) {            returnDays[0] = currYear + "0101";            returnDays[1] = (Integer.parseInt(currYear) - 1) + "1231";        } else if (Integer.parseInt(currMonth) >= 1 && Integer.parseInt(currDay) > 2) {            returnDays[0] = currYear + currMonth + tempDay + (Integer.parseInt(currDay) - 1);            if (currDay.equals("11")) {                returnDays[1] = currYear + currMonth + "0" + (Integer.parseInt(currDay) - 2);            } else {                returnDays[1] = currYear + currMonth + tempDay + (Integer.parseInt(currDay) - 2);            }        } else if (Integer.parseInt(currMonth) > 1 && Integer.parseInt(currDay) == 2) {            returnDays[0] = currYear + currMonth + "01";            if (currMonth.equals("10")) {                returnDays[1] = currYear                        + "0"                        + (Integer.parseInt(currMonth) - 1)                        + (getLastDayOfUpMonth(Integer.parseInt(currYear),                                Integer.parseInt(currMonth), Integer.parseInt(currDay)));            } else {                returnDays[1] = currYear                        + tempMonth                        + (Integer.parseInt(currMonth) - 1)                        + (getLastDayOfUpMonth(Integer.parseInt(currYear),                                Integer.parseInt(currMonth), Integer.parseInt(currDay)));            }        } else if (Integer.parseInt(currMonth) > 1 && Integer.parseInt(currDay) == 1) {            if (currMonth.equals("10")) {                returnDays[0] = currYear                        + "0"                        + (Integer.parseInt(currMonth) - 1)                        + (getLastDayOfUpMonth(Integer.parseInt(currYear),                                Integer.parseInt(currMonth), Integer.parseInt(currDay)));                returnDays[1] = currYear                        + "0"                        + (Integer.parseInt(currMonth) - 1)                        + (getLastDayOfUpMonth(Integer.parseInt(currYear),                                Integer.parseInt(currMonth), Integer.parseInt(currDay)) - 1);            } else {                returnDays[0] = currYear                        + tempMonth                        + (Integer.parseInt(currMonth) - 1)                        + (getLastDayOfUpMonth(Integer.parseInt(currYear),                                Integer.parseInt(currMonth), Integer.parseInt(currDay)));                returnDays[1] = currYear                        + tempMonth                        + (Integer.parseInt(currMonth) - 1)                        + (getLastDayOfUpMonth(Integer.parseInt(currYear),                                Integer.parseInt(currMonth), Integer.parseInt(currDay)) - 1);            }        } else {            returnDays[0] = currYear + currMonth + tempDay + (Integer.parseInt(currDay) - 1);            returnDays[1] = currYear + currMonth + tempDay + (Integer.parseInt(currDay) - 2);        }                return returnDays;    }        public static int getLastDayOfUpMonth(int year, int month, int date) {        Calendar calendar = new GregorianCalendar(year, month, date);        calendar.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天        calendar.add(Calendar.MONTH, -1);// 月增减1天        calendar.add(Calendar.DAY_OF_MONTH, -1);// 日期倒数一日,既得到本月最后一天        return calendar.get(Calendar.DATE);    }        /**     * 获取当月第一天     *      * @author WikerYong     * @version 2011-11-21 下午04:45:06     * @return     */    public static String getFirstDayOfMonth() {        String str = "";        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        Calendar lastDate = Calendar.getInstance();        lastDate.set(Calendar.DATE, 1);// 设为当前月的1号        str = sdf.format(lastDate.getTime());        return str;    }        /**     * 获取当月最后一天     *      * @author WikerYong     * @version 2011-11-21 下午04:46:06     * @return     */    public static String getLastDayOfMonteh() {        String str = "";        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");                Calendar lastDate = Calendar.getInstance();        lastDate.set(Calendar.DATE, 1);// 设为当前月的1号        lastDate.add(Calendar.MONTH, 1);// 加一个月,变为下月的1号        lastDate.add(Calendar.DATE, -1);// 减去一天,变为当月最后一天        str = sdf.format(lastDate.getTime());        return str;    }        /**     * 获取去年的年份     *      * @return     */    public static String getLastYear() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyy");        Calendar c = Calendar.getInstance();        c.setTime(currentTime);        c.add(Calendar.YEAR, -1);        String dateString = formatter.format(c.getTime());        return dateString;    }        /**     * 获取前年的年份     *      * @return     */    public static String getBeforeLastYear() {        Date currentTime = new Date();        SimpleDateFormat formatter = new SimpleDateFormat("yyyy");        Calendar c = Calendar.getInstance();        c.setTime(currentTime);        c.add(Calendar.YEAR, -2);        String dateString = formatter.format(c.getTime());        return dateString;    }        /**     * 获取某月最后一天     *      * @param year     * @param month     * @return     */    public static String getLastDayOfMonth(int year, int month) {        Calendar cal = Calendar.getInstance();        cal.set(Calendar.YEAR, year);        cal.set(Calendar.MONTH, month-1);        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE));        return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());    }        /**     * 获取某月第一天     *     * @param year     * @param month     * @return     */    public static String getFirstDayOfMonth(int year, int month) {        Calendar cal = Calendar.getInstance();        cal.set(Calendar.YEAR, year);        cal.set(Calendar.MONTH, month-1);        cal.set(Calendar.DAY_OF_MONTH, cal.getMinimum(Calendar.DATE));        return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());    }        /**     * 判断日期是否为同一天     *     * @param dateA     * @param dateB     * @return true 则为同一天,false则为不在同一天     */    public static boolean isSameDay(Date dateA,Date dateB) {        Calendar calDateA = Calendar.getInstance();        calDateA.setTime(dateA);        Calendar calDateB = Calendar.getInstance();        calDateB.setTime(dateB);        return calDateA.get(Calendar.YEAR) == calDateB.get(Calendar.YEAR)                && calDateA.get(Calendar.MONTH) == calDateB.get(Calendar.MONTH)                &&  calDateA.get(Calendar.DAY_OF_MONTH) == calDateB.get(Calendar.DAY_OF_MONTH);    }        public static void main(String[] args) {        System.out.println(getFirstDayOfMonth(2013,2));        System.out.println(getLastDayOfMonth(2013,2));    }}



原创粉丝点击