Java Date工具类 日期工具类

public class DateUtil {
    public static final String[] months = {"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"};

    public static final String[] quarters = {"一季度", "二季度", "三季度", "四季度"};

    public DateUtil() {
    }

    /**
     * 获取当前日期和时间
     * 格式 yyyyMMdd HH:mm:ss
     *
     * @return String
     */
    public static String getCurrentDateStr() {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        return formatter.format(new Date());
    }

    /**
     * 获取日期字符串。
     * 

*

     *  日期字符串格式: yyyyMMdd
     *  其中:
     *      yyyy   表示4位年。
     *      MM     表示2位月。
     *      dd     表示2位日。
     * 
* * @return String "yyyyMMdd"格式的日期字符串。 */ public static String getDate() { SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); return formatter.format(new Date()); } /** * 获取当前年度字符串。 *

*

     *  日期字符串格式: yyyy
     *  其中:
     *      yyyy   表示4位年。
     * 
* * @return String "yyyy"格式的当前年度字符串。 */ public static String getNowYear() { SimpleDateFormat formatter = new SimpleDateFormat("yyyy"); return formatter.format(new Date()); } /** * 获取当前月度字符串。 *

*

     *  日期字符串格式: MM
     *  其中:
     *      MM   表示4位年。
     * 
* * @return String "yyyy"格式的当前月度字符串。 */ public static String getNowMonth() { SimpleDateFormat formatter = new SimpleDateFormat("MM"); return formatter.format(new Date()); } /** * 获取当前月度字符串。 *

*

     *  日期字符串格式: dd
     *  其中:
     *      dd   表示4位年。
     * 
* * @return String "yyyy"格式的当前月度字符串。 */ public static String getNowDay() { SimpleDateFormat formatter = new SimpleDateFormat("dd"); return formatter.format(new Date()); } /** * 获取日期字符串。 *

*

     *  日期字符串格式: yyyyMMdd
     *  其中:
     *      yyyy   表示4位年。
     *      MM     表示2位月。
     *      dd     表示2位日。
     * 
* * @param date 需要转化的日期。 * @return String "yyyyMMdd"格式的日期字符串。 */ public static String getDate(Date date, String format) { SimpleDateFormat formatter = new SimpleDateFormat(format); return formatter.format(date); } public static String getDate(Date date) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); return formatter.format(date); } /** * 获取日期字符串。 * *
     *  日期字符串格式: yyyyMMdd
     *  其中:
     *      yyyy   表示4位年。
     *      MM     表示2位月。
     *      dd     表示2位日。
     * 
* * @param date * 需要转化的日期。 * @return String "yyyyMMdd"格式的日期字符串。 */ /** * 将指定的日期字符串转化为日期对象 * * @param dateStr 日期字符串 * @return java.util.Date * @roseuid 3F39FE450385 */ public static Date getDate(String dateStr) { if (DateUtil.isDate(dateStr)) { // 日期型 SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); try { java.util.Date date = df.parse(dateStr); return date; } catch (Exception ex) { return null; } // end try - catch } else if (DateUtil.isDateTime(dateStr)) { // 日期时间型 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); try { java.util.Date date = df.parse(dateStr); return date; } catch (Exception ex) { return null; } // end try - catch } // end if return null; } public static Date getDate(String dateStr, String pattern) { if (DateUtil.isDateTime(dateStr, pattern)) { // 日期型 SimpleDateFormat df = new SimpleDateFormat(pattern); try { java.util.Date date = df.parse(dateStr); return date; } catch (Exception ex) { return null; } // end try - catch } return null; } /** * 获取日期字符串。 *

*

     *  日期字符串格式: yyyy-MM-dd
     *  其中:
     *      yyyy   表示4位年。
     *      MM     表示2位月。
     *      dd     表示2位日。
     * 
* * @return String "yyyy-MM-dd"格式的日期字符串。 */ public static String getHyphenDate() { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); return formatter.format(new Date()); } /** * 获取日期字符串。 *

*

     *  日期字符串格式: yyyy-MM-dd
     *  其中:
     *      yyyy   表示4位年。
     *      MM     表示2位月。
     *      dd     表示2位日。
     * 
* * @param date 需要转化的日期。 * @return String "yyyy-MM-dd"格式的日期字符串。 */ public static String getHyphenDate(Date date) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); return formatter.format(date); } /** * 将"yyyyMMdd"格式的日期字符串转换为日期对象。 * * @param source 日期字符串。 * @return Date 日期对象。 */ public static Date parsePlainDate(String source) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); return sdf.parse(source, new ParsePosition(0)); } /** * 将“yyyy-MM-dd”格式的日期字符串转换为日期对象。 * * @param source 日期字符串。 * @return Date 日期对象。 */ public static Date parseHyphenDate(String source) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.parse(source, new ParsePosition(0)); } /** * 将指定格式的日期字符串转换为日期对象。 * * @param source 日期字符串。 * @param pattern 模式。 * @return Date 日期对象。 */ public static Date parseDate(String source, String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.parse(source, new ParsePosition(0)); } /** * 将“yyyy-MM-dd”格式的日期字符串转换为“yyyyMMdd”格式的日期字符串。 * * @param source 日期字符串。 * @return String "yyyymmdd"格式的日期字符串。 */ public static String toPlainDate(String source) { Date date = parseHyphenDate(source); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); return formatter.format(date); } /** * 将“yyyyMMdd”格式的日期字符串转换为“yyyy-MM-dd”格式的日期字符串。 * * @param source 日期字符串。 * @return String "yyyy-MM-dd"格式的日期字符串。 */ public static String toHyphenDate(String source) { Date date = parsePlainDate(source); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); return formatter.format(date); } /** * 获取时间戳,将日期对象转换为时间戳类型。 * * @param date 日期对象 * @return Timestamp 时间戳 */ public static Timestamp getTimestamp(Date date) { return new Timestamp(date.getTime()); } /** * 获取时间戳,将当前日期转换为时间戳类型。 * * @return Timestamp 时间戳 */ public static Timestamp getTimestamp() { return new Timestamp(new Date().getTime()); } /** * 将“yyyyMMdd”格式的日期字符串转换为Timestamp类型的对象。 * * @param source 日期字符串 * @return Timestamp 时间戳 */ public static Timestamp parseTimestamp(String source) { Date date = parsePlainDate(source); return getTimestamp(date); } /** * 获得年度周期
* Example:
* XJPDateUtil.getPeriodYear("20040229" , -1);
* XJPDateUtil.getPeriodYear("20040228" , -1);
* XJPDateUtil.getPeriodYear("20020230" , 2);
* * @param source 时间串 * @param yearPeriod 年度周期 -1代表本时间的上一年度,以次类推。 * @return String 时间。 */ public static String getPeriodYear(String source, int yearPeriod) { int p = Integer.parseInt(source.substring(0, 4)) + yearPeriod; String newYear = String.valueOf(p) + source.substring(4, source.length()); Date date = parsePlainDate(newYear); String s = getDate(date); int ny = Integer.parseInt(s); int sy = Integer.parseInt(newYear); while (ny > sy) { sy--; ny = Integer.parseInt(getDate(parsePlainDate(String.valueOf(sy)))); } return String.valueOf(sy); } /** * 当前日期延后多少天 * * @param day 天数 * @return 返回相加后的日期 */ public static String addDate(int day) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTimeInMillis(System.currentTimeMillis() + ((long) day) * 24 * 3600 * 1000); SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd HH:mm:ss"); return df.format(c.getTime()); } /** * 日期减上多少月前的日期 * * @param now * @param month * @return */ public static Date dateReduceMonth(Date now, int month) { Calendar calendar = Calendar.getInstance(); calendar.setTime(now); calendar.add(Calendar.MONTH, month * -1); return calendar.getTime(); } /** * 日期减上多少天前的日期 * @param now * @param day * @return */ public static Date dateReduceDay(Date now, int day) { Calendar calendar = Calendar.getInstance(); calendar.setTime(now); calendar.add(Calendar.DATE, day * -1); return calendar.getTime(); } /** * 日期减上多少年前的日期 * @param now * @param year * @return */ public static Date dateReduceYear(Date now, int year) { Calendar calendar = Calendar.getInstance(); calendar.setTime(now); calendar.add(Calendar.YEAR, year * -1); return calendar.getTime(); } /** * 日期加上多少月后的日期 * * @param now * @param month * @return */ public static Date dateAddMonth(Date now, int month) { Calendar calendar = Calendar.getInstance(); calendar.setTime(now); calendar.add(Calendar.MONTH, month); return calendar.getTime(); } /** * 日期加上多少年后的日期 * * @param now * @param year * @return */ public static Date dateAddYear(Date now, int year) { Calendar calendar = Calendar.getInstance(); calendar.setTime(now); calendar.add(Calendar.YEAR, year); return calendar.getTime(); } /** * 日期加上多少天后的日期 * @param now * @param day * @return */ public static Date dateAddDay(Date now, int day) { Calendar calendar = Calendar.getInstance(); calendar.setTime(now); calendar.add(Calendar.DAY_OF_MONTH, day); return calendar.getTime(); } /** * 日期添加多少天后的日期 * * @param datestr 日期字符串 * @param day 相对天数,为正数表示之后,为负数表示之前 * @return 指定日期字符串n天之前或者之后的日期 */ public static Date dateAddDate(String datestr, int day) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); java.sql.Date olddate = null; try { df.setLenient(false); olddate = new java.sql.Date(df.parse(datestr).getTime()); } catch (ParseException e) { throw new RuntimeException("日期转换错误"); } Calendar cal = new GregorianCalendar(); cal.setTime(olddate); int Year = cal.get(Calendar.YEAR); int Month = cal.get(Calendar.MONTH); int Day = cal.get(Calendar.DAY_OF_MONTH); int NewDay = Day + day; cal.set(Calendar.YEAR, Year); cal.set(Calendar.MONTH, Month); cal.set(Calendar.DAY_OF_MONTH, NewDay); return new Date(cal.getTimeInMillis()); } /** * 时间戳转换成日期格式字符串 * * @param seconds 精确到秒的字符串 * @param format * @return */ public static String timeStamp2Date(String seconds, String format) { if (seconds == null || seconds.isEmpty() || seconds.equals("null")) { return ""; } if (format == null || format.isEmpty()) format = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(new Date(Long.valueOf(seconds + "000"))); } /** * 日期格式字符串转换成时间戳 * * @param date 字符串日期 * @param format 如:yyyy-MM-dd HH:mm:ss * @return */ public static String date2TimeStamp(String date, String format) { try { SimpleDateFormat sdf = new SimpleDateFormat(format); return String.valueOf(sdf.parse(date).getTime() / 1000); } catch (Exception e) { e.printStackTrace(); } return ""; } /** * 取得当前时间戳(精确到秒) * * @return */ public static String timeStamp() { long time = System.currentTimeMillis(); String t = String.valueOf(time / 1000); return t; } /** * 返回毫秒 * * @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 format 日期格式 例:yyyy-MM-dd hh:mm * @return String */ public static String getNowDate(String format) { Date date = new Date(); String str = null; SimpleDateFormat df = new SimpleDateFormat(format); str = df.format(date); return str; } /** * 根据日期时间获得字符串时间 * * @param dateStr * @return * @throws Exception */ public static String getTimeStr(String dateStr) throws Exception { Date date = getDate(dateStr); String str = null; SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss"); str = df.format(date); return str; } /** * 根据日期时间获得字符串时间 * * @param date * @return * @throws Exception */ public static String getTimeStr6(Date date) throws Exception { SimpleDateFormat df = new SimpleDateFormat("HHmmss"); String str = df.format(date); return str; } /** * 取得当前日期 * @return */ public static String getTimeStr6() { String str = ""; SimpleDateFormat df = new SimpleDateFormat("HHmmss"); str = df.format(new Date()); return str; } /** * 日期添加多少分钟后的时间 * * @param day * @param x * @return */ public static Date addDateMinut(Date day, int x) { Calendar cal = Calendar.getInstance(); cal.setTime(day); cal.add(Calendar.MINUTE, x);// 24小时制 day = cal.getTime(); cal = null; return day; } /** * 日期减少多少分钟后的时间 * * @param day * @param x * @return */ public static String reduceDateMinut(Date day, int x) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 24小时制 Calendar cal = Calendar.getInstance(); cal.setTime(day); cal.add(Calendar.MINUTE, -x);// 24小时制 day = cal.getTime(); cal = null; return format.format(day); } /** * 获得字符串时间 * * @return */ public static String getTimeStr() { String str = ""; SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss"); str = df.format(new Date()); return str; } /** * 判断字符串是否日期时间格式 * * @param str * @return */ public static boolean isDateTime(String str) { return isDateTime(str, "yyyy-MM-dd HH:mm:ss.SSS"); } /** * 判断字符串是否日期时间格式 * * @param str * @return */ public static boolean isDateTime(String str, String pattern) { boolean convertSuccess = true; // 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写; SimpleDateFormat format = new SimpleDateFormat(pattern); try { // 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01 format.setLenient(false); format.parse(str); } catch (Exception e) { // e.printStackTrace(); // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 convertSuccess = false; } return convertSuccess; } /** * 判断字符串是否日期格式 * * @param str * @return */ public static boolean isDate(String str) { boolean convertSuccess = true; // 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写; SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); try { // 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01 format.setLenient(false); format.parse(str); } catch (Exception e) { // e.printStackTrace(); // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 convertSuccess = false; } return convertSuccess; } /** * 获得 这周的第一天 * * @return */ public static Date getThisWeekFirstDay() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar calendar = Calendar.getInstance(); // 得到当天是这周的第几天 int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 减去dayOfWeek,得到第一天的日期,因为Calendar用0-6代表一周七天,所以要减一 calendar.add(Calendar.DAY_OF_WEEK, -(dayOfWeek - 1)); String beginTime1 = datef.format(calendar.getTime()) + " 00:00:00"; Date firstDateOfWeek = dateFormat.parse(beginTime1); return firstDateOfWeek; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 获得这周的最后一天 * * @return */ public static Date getThisWeekLastDay() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar calendar = Calendar.getInstance(); // 得到当天是这周的第几天 int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 每周7天,加6,得到最后一天的日子 calendar.add(Calendar.DAY_OF_WEEK, 7 - dayOfWeek); String endTime1 = datef.format(calendar.getTime()) + " 23:59:59"; Date lastDateOfWeek = dateFormat.parse(endTime1); return lastDateOfWeek; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 获得这个月的第一天 * * @return */ public static Date getThisMonthFirstDay() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天 String beginTime1 = datef.format(c.getTime()) + " 00:00:00"; Date firstDateOfWeek = dateFormat.parse(beginTime1); return firstDateOfWeek; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 获得这个月的最后一天 * * @return */ public static Date getThisMonthLastDay() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String endTime1 = datef.format(ca.getTime()) + " 23:59:59"; Date lastDateOfWeek = dateFormat.parse(endTime1); return lastDateOfWeek; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 设置时间后获得日期类型 * * @param time * @return */ public static Date setTimeGetDate(Date myDate, String time) { try { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date date = df.parse(DateUtil.getDate(myDate) + " " + time); return date; } catch (Exception e) { try { SimpleDateFormat _df = new SimpleDateFormat("yyyy-MM-dd HH:mm"); java.util.Date date = _df.parse(DateUtil.getDate(myDate) + " " + time); return date; } catch (Exception _e) { e.printStackTrace(); } } return null; } /** * 获取某一天的0时0分0秒时间 * * @param dt * @return */ public static Date getStartTimeOfDay(Date dt) { if (dt == null) { return null; } Calendar cal = Calendar.getInstance(); cal.setTime(dt); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); return cal.getTime(); } /** * 获取某一天的23时59分59秒时间 * * @param dt * @return */ public static Date getEndTimeOfDay(Date dt) { if (dt == null) { return null; } Calendar cal = Calendar.getInstance(); cal.setTime(dt); cal.set(Calendar.HOUR_OF_DAY, 23); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); cal.set(Calendar.MILLISECOND, 999); return cal.getTime(); } /** * 获取某一天的的下一天的0时0分0秒时间 * * @param dt * @return */ public static Date getStartTimeOfNextDay(Date dt) { if (dt == null) { return null; } Calendar cal = Calendar.getInstance(); cal.setTime(dt); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); cal.add(Calendar.DAY_OF_MONTH, 1); return cal.getTime(); } /** * 日期加指定天数 * * @param day 天数 * @return 返回相加后的日期 */ public static Date addDate(Date d, long day) { long time = d.getTime(); day = day * 24 * 60 * 60 * 1000; time += day; return new Date(time); } /** * 日期减指定天数 * * @param day 天数 * @return 返回相减后的日期 */ public static Date deleteDate(Date d, long day) { long time = d.getTime(); day = day * 24 * 60 * 60 * 1000; time -= day; return new Date(time); } /** * 日期之间间隔天数 * @param before * @param after * @return */ public static int getBetweenDays(Date before, Date after) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); before = sdf.parse(sdf.format(before)); after = sdf.parse(sdf.format(after)); Calendar cal = Calendar.getInstance(); cal.setTime(before); long time1 = cal.getTimeInMillis(); cal.setTime(after); long time2 = cal.getTimeInMillis(); long between_days = (time2 - time1) / (1000 * 3600 * 24); int result = Integer.parseInt(String.valueOf(between_days)); return result; } catch (Exception e) { return 0; } } /** * 获得昨天开始时间 * * @return */ public static Date getYesterdayBegin() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar calendar = Calendar.getInstance(); // 得到当天是这周的第几天 calendar.add(Calendar.DAY_OF_WEEK, -1); String beginTime1 = datef.format(calendar.getTime()) + " 00:00:00"; Date firstDateOfWeek = dateFormat.parse(beginTime1); return firstDateOfWeek; } catch (Exception e) { } return null; } /** * 获得昨天结束时间 * * @return */ public static Date getYesterdayEnd() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_WEEK, -1); String endTime1 = datef.format(calendar.getTime()) + " 23:59:59"; Date lastDateOfWeek = dateFormat.parse(endTime1); return lastDateOfWeek; } catch (Exception e) { } return null; } /** * 获得本季第一天 * * @return */ public static Date getThisQuarterFirstDay() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar c = Calendar.getInstance(); c.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天 int month = c.get(Calendar.MONTH) + 1; System.out.println(month); if (1 == month || 2 == month || 3 == month) { c.set(Calendar.MONTH, 12); } else if (4 == month || 5 == month || 6 == month) { c.set(Calendar.MONTH, 3); } else if (7 == month || 8 == month || 9 == month) { c.set(Calendar.MONTH, 6); } else { c.set(Calendar.MONTH, 9); } String beginTime1 = datef.format(c.getTime()) + " 00:00:00"; Date firstDateOfWeek = dateFormat.parse(beginTime1); return firstDateOfWeek; } catch (Exception e) { } return null; } /** * 获得本季最后一天 * * @return */ public static Date getThisQuarterLastDay() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar c = Calendar.getInstance(); int month = c.get(Calendar.MONTH) + 1; if (1 == month || 2 == month || 3 == month) { c.set(Calendar.MONTH, 2); } else if (4 == month || 5 == month || 6 == month) { c.set(Calendar.MONTH, 5); } else if (7 == month || 8 == month || 9 == month) { c.set(Calendar.MONTH, 8); } else { c.set(Calendar.MONTH, 11); } c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); String endTime1 = datef.format(c.getTime()) + " 23:59:59"; Date lastDateOfWeek = dateFormat.parse(endTime1); return lastDateOfWeek; } catch (Exception e) { } return null; } /** * 获得本年第一天 * * @return */ public static Date getThisYearFirstDay() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_YEAR, 1);//设置为1号,当前日期既为本月第一天 String beginTime1 = datef.format(c.getTime()) + " 00:00:00"; Date firstDateOfWeek = dateFormat.parse(beginTime1); return firstDateOfWeek; } catch (Exception e) { } return null; } /** * 获得本年最后一天 * * @return */ public static Date getThisYearLastDay() { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_YEAR, ca.getActualMaximum(Calendar.DAY_OF_YEAR)); String endTime1 = datef.format(ca.getTime()) + " 23:59:59"; Date lastDateOfWeek = dateFormat.parse(endTime1); return lastDateOfWeek; } catch (Exception e) { } return null; } public static Date getDayEnd(Date date) { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar ca = Calendar.getInstance(); ca.setTime(date); String endTime1 = datef.format(ca.getTime()) + " 23:59:59"; Date dateEnd = dateFormat.parse(endTime1); return dateEnd; } catch (Exception e) { } return null; } public static Date getDayBegin(Date date) { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Calendar ca = Calendar.getInstance(); ca.setTime(date); String endTime1 = datef.format(ca.getTime()) + " 00:00:00"; Date dateEnd = dateFormat.parse(endTime1); return dateEnd; } catch (Exception e) { } return null; } public static String getDayEndStr(Date date) { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); Calendar ca = Calendar.getInstance(); ca.setTime(date); String endTime1 = datef.format(ca.getTime()) + " 23:59:59"; return endTime1; } catch (Exception e) { } return null; } public static String getDayBeginStr(Date date) { try { SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); Calendar ca = Calendar.getInstance(); ca.setTime(date); String endTime1 = datef.format(ca.getTime()) + " 00:00:00"; return endTime1; } catch (Exception e) { } return null; } /** * 判断日期是否相同 * * @param d1 * @param d2 * @return */ public static boolean isSame(Date d1, Date d2) { try { SimpleDateFormat datef = new SimpleDateFormat("yyyyMMdd"); return datef.format(d1).equals(datef.format(d2)); } catch (Exception e) { } return false; } /** * 不区分时间比较日期 * * @param before 前日期 * @param end 后日期 * @return 等于0,日期相等;大于0,前日期大于后日期;小于0,前日期小于后日期 */ public static int compare(Date before, Date end) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String beforeStr = sdf.format(before); String endStr = sdf.format(end); return beforeStr.compareTo(endStr); } /** * 快速获取指定日期 * * @param year 年 * @param month 月 * @param day 日 * @return */ public static Date getDate(Integer year, Integer month, Integer day) { Calendar calendar = Calendar.getInstance(); calendar.set(year, month - 1, day); return calendar.getTime(); } }

你可能感兴趣的:(技术分享,java)