package com.common.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { private StringBuffer buffer = new StringBuffer(); private static String ZERO = "0"; private static DateUtils date; public static SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); public static SimpleDateFormat format1 = new SimpleDateFormat( "yyyyMMdd HH:mm:ss"); public static SimpleDateFormat common_format = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); public String getNowString() { Calendar calendar = getCalendar(); buffer.delete(0, buffer.capacity()); buffer.append(getYear(calendar)); if (getMonth(calendar) < 10) { buffer.append(ZERO); } buffer.append(getMonth(calendar)); if (getDate(calendar) < 10) { buffer.append(ZERO); } buffer.append(getDate(calendar)); if (getHour(calendar) < 10) { buffer.append(ZERO); } buffer.append(getHour(calendar)); if (getMinute(calendar) < 10) { buffer.append(ZERO); } buffer.append(getMinute(calendar)); if (getSecond(calendar) < 10) { buffer.append(ZERO); } buffer.append(getSecond(calendar)); return buffer.toString(); } private static int getDateField(Date date, int field) { Calendar c = getCalendar(); c.setTime(date); return c.get(field); } public static int getYearsBetweenDate(Date begin, Date end) { int bYear = getDateField(begin, Calendar.YEAR); int eYear = getDateField(end, Calendar.YEAR); return eYear - bYear; } public static int getMonthsBetweenDate(Date begin, Date end) { int bMonth = getDateField(begin, Calendar.MONTH); int eMonth = getDateField(end, Calendar.MONTH); return eMonth - bMonth; } public static int getWeeksBetweenDate(Date begin, Date end) { int bWeek = getDateField(begin, Calendar.WEEK_OF_YEAR); int eWeek = getDateField(end, Calendar.WEEK_OF_YEAR); return eWeek - bWeek; } public static int getDaysBetweenDate(Date begin, Date end) { return (int) ((end.getTime()-begin.getTime())/(1000 * 60 * 60 * 24)); } public static void main(String args[]) { System.out.println(getSpecficMonthStart(Calendar.getInstance().getTime(), 0)); } /** * 获取date年后的amount年的第一天的开始时间 * * @param amount * 可正、可负 * @return */ public static Date getSpecficYearStart(Date date, int amount) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.YEAR, amount); cal.set(Calendar.DAY_OF_YEAR, 1); return getStartDate(cal.getTime()); } /** * 获取date年后的amount年的最后一天的终止时间 * * @param amount * 可正、可负 * @return */ public static Date getSpecficYearEnd(Date date, int amount) { Date temp = getStartDate(getSpecficYearStart(date, amount + 1)); Calendar cal = Calendar.getInstance(); cal.setTime(temp); cal.add(Calendar.DAY_OF_YEAR, -1); return getFinallyDate(cal.getTime()); } /** * 获取date月后的amount月的第一天的开始时间 * * @param amount * 可正、可负 * @return */ public static Date getSpecficMonthStart(Date date, int amount) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, amount); cal.set(Calendar.DAY_OF_MONTH, 1); return getStartDate(cal.getTime()); } /** * 获取当前自然月后的amount月的最后一天的终止时间 * * @param amount * 可正、可负 * @return */ public static Date getSpecficMonthEnd(Date date, int amount) { Calendar cal = Calendar.getInstance(); cal.setTime(getSpecficMonthStart(date, amount + 1)); cal.add(Calendar.DAY_OF_YEAR, -1); return getFinallyDate(cal.getTime()); } /** * 获取date周后的第amount周的开始时间(这里星期一为一周的开始) * * @param amount * 可正、可负 * @return */ public static Date getSpecficWeekStart(Date date, int amount) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.setFirstDayOfWeek(Calendar.MONDAY); /* 设置一周的第一天为星期一 */ cal.add(Calendar.WEEK_OF_MONTH, amount); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return getStartDate(cal.getTime()); } /** * 获取date周后的第amount周的最后时间(这里星期日为一周的最后一天) * * @param amount * 可正、可负 * @return */ public static Date getSpecficWeekEnd(Date date, int amount) { Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY); /* 设置一周的第一天为星期一 */ cal.add(Calendar.WEEK_OF_MONTH, amount); cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); return getFinallyDate(cal.getTime()); } public static Date getSpecficDateStart(Date date, int amount) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DAY_OF_YEAR, amount); return getStartDate(cal.getTime()); } public static Date getSpecficDateEnd(Date date, int amount) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DAY_OF_YEAR, amount); return getFinallyDate(cal.getTime()); } /** * 得到指定日期的一天的的最后时刻23:59:59 * * @param date * @return */ public static Date getFinallyDate(Date date) { String temp = format.format(date); temp += " 23:59:59"; try { return format1.parse(temp); } catch (ParseException e) { return null; } } /** * 得到指定日期的一天的的最后时刻23:59:59 * * @param date * @return */ public static String getFinallyDateStr(Date date) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String temp = format.format(date); temp += " 23:59:59"; try { return temp; } catch (Exception e) { return temp; } } /** * 得到指定日期的一天的开始时刻00:00:00 * * @param date * @return */ public static Date getStartDate(Date date) { String temp = format.format(date); temp += " 00:00:00"; try { return format1.parse(temp); } catch (Exception e) { return null; } } /** * 得到指定日期的一天的开始时刻00:00:00 * * @param date * @return */ public static String getStartDateStr(Date date) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String temp = format.format(date); temp += " 00:00:00"; try { return temp; } catch (Exception e) { return temp; } } /** * * @param date * 指定比较日期 * @param compareDate * @return */ public static boolean isInDate(Date date, Date compareDate) { if (compareDate.after(getStartDate(date)) && compareDate.before(getFinallyDate(date))) { return true; } else { return false; } } /** * 获取两个时间的差值秒 * @param d1 * @param d2 * @return */ public static Integer getSecondBetweenDate(Date d1,Date d2){ Long second=(d2.getTime()-d1.getTime())/1000; return second.intValue(); } private int getYear(Calendar calendar) { return calendar.get(Calendar.YEAR); } private int getMonth(Calendar calendar) { return calendar.get(Calendar.MONDAY) + 1; } private int getDate(Calendar calendar) { return calendar.get(Calendar.DATE); } private int getHour(Calendar calendar) { return calendar.get(Calendar.HOUR_OF_DAY); } private int getMinute(Calendar calendar) { return calendar.get(Calendar.MINUTE); } private int getSecond(Calendar calendar) { return calendar.get(Calendar.SECOND); } private static Calendar getCalendar() { return Calendar.getInstance(); } public static DateUtils getDateInstance() { if (date == null) { date = new DateUtils(); } return date; } }
package com.jetcms.common.util; import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; /** * @author hzp */public class DateUtils { private StringBuffer buffer = new StringBuffer(); private static String ZERO = "0"; private static DateUtils date; public static SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); public static SimpleDateFormat format1 = new SimpleDateFormat( "yyyyMMdd HH:mm:ss"); public static SimpleDateFormat common_format = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); public String getNowString() { Calendar calendar = getCalendar();buffer.delete(0, buffer.capacity());buffer.append(getYear(calendar)); if (getMonth(calendar) < 10) { buffer.append(ZERO);} buffer.append(getMonth(calendar)); if (getDate(calendar) < 10) { buffer.append(ZERO);} buffer.append(getDate(calendar)); if (getHour(calendar) < 10) { buffer.append(ZERO);} buffer.append(getHour(calendar)); if (getMinute(calendar) < 10) { buffer.append(ZERO);} buffer.append(getMinute(calendar)); if (getSecond(calendar) < 10) { buffer.append(ZERO);} buffer.append(getSecond(calendar)); return buffer.toString();} private static int getDateField(Date date, int field) { Calendar c = getCalendar();c.setTime(date); return c.get(field);} public static int getYearsBetweenDate(Date begin, Date end) { int bYear = getDateField(begin, Calendar.YEAR); int eYear = getDateField(end, Calendar.YEAR); return eYear - bYear;} public static int getMonthsBetweenDate(Date begin, Date end) { int bMonth = getDateField(begin, Calendar.MONTH); int eMonth = getDateField(end, Calendar.MONTH); return eMonth - bMonth;} public static int getWeeksBetweenDate(Date begin, Date end) { int bWeek = getDateField(begin, Calendar.WEEK_OF_YEAR); int eWeek = getDateField(end, Calendar.WEEK_OF_YEAR); return eWeek - bWeek;} public static int getDaysBetweenDate(Date begin, Date end) { return (int) ((end.getTime()-begin.getTime())/(1000 * 60 * 60 * 24));} public static void main(String args[]) { System.out.println(getSpecficMonthStart(Calendar.getInstance().getTime(), 0));} /** * 获取date年后的amount年的第一天的开始时间* * @param amount* 可正、可负* @return*/public static Date getSpecficYearStart(Date date, int amount) { Calendar cal = Calendar.getInstance();cal.setTime(date);cal.add(Calendar.YEAR, amount);cal.set(Calendar.DAY_OF_YEAR, 1); return getStartDate(cal.getTime());} /** * 获取date年后的amount年的最后一天的终止时间* * @param amount* 可正、可负* @return*/public static Date getSpecficYearEnd(Date date, int amount) { Date temp = getStartDate(getSpecficYearStart(date, amount + 1));Calendar cal = Calendar.getInstance();cal.setTime(temp);cal.add(Calendar.DAY_OF_YEAR, -1); return getFinallyDate(cal.getTime());} /** * 获取date月后的amount月的第一天的开始时间* * @param amount* 可正、可负* @return*/public static Date getSpecficMonthStart(Date date, int amount) { Calendar cal = Calendar.getInstance();cal.setTime(date);cal.add(Calendar.MONTH, amount);cal.set(Calendar.DAY_OF_MONTH, 1); return getStartDate(cal.getTime());} /** * 获取当前自然月后的amount月的最后一天的终止时间* * @param amount* 可正、可负* @return*/public static Date getSpecficMonthEnd(Date date, int amount) { Calendar cal = Calendar.getInstance();cal.setTime(getSpecficMonthStart(date, amount + 1));cal.add(Calendar.DAY_OF_YEAR, -1); return getFinallyDate(cal.getTime());} /** * 获取date周后的第amount周的开始时间(这里星期一为一周的开始)* * @param amount* 可正、可负* @return*/public static Date getSpecficWeekStart(Date date, int amount) { Calendar cal = Calendar.getInstance();cal.setTime(date);cal.setFirstDayOfWeek(Calendar.MONDAY); /* 设置一周的第一天为星期一 */cal.add(Calendar.WEEK_OF_MONTH, amount);cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return getStartDate(cal.getTime());} /** * 获取date周后的第amount周的最后时间(这里星期日为一周的最后一天)* * @param amount* 可正、可负* @return*/public static Date getSpecficWeekEnd(Date date, int amount) { Calendar cal = Calendar.getInstance();cal.setFirstDayOfWeek(Calendar.MONDAY); /* 设置一周的第一天为星期一 */cal.add(Calendar.WEEK_OF_MONTH, amount);cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); return getFinallyDate(cal.getTime());} public static Date getSpecficDateStart(Date date, int amount) { Calendar cal = Calendar.getInstance();cal.setTime(date);cal.add(Calendar.DAY_OF_YEAR, amount); return getStartDate(cal.getTime());} public static Date getSpecficDateEnd(Date date, int amount) { Calendar cal = Calendar.getInstance();cal.setTime(date);cal.add(Calendar.DAY_OF_YEAR, amount); return getFinallyDate(cal.getTime());} /** * 得到指定日期的一天的的最后时刻23:59:59 * * @param date* @return*/public static Date getFinallyDate(Date date) { String temp = format.format(date);temp += " 23:59:59"; try { return format1.parse(temp);} catch (ParseException e) { return null;} } /** * 得到指定日期的一天的的最后时刻23:59:59 * * @param date* @return*/public static String getFinallyDateStr(Date date) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd");String temp = format.format(date);temp += " 23:59:59"; try { return temp;} catch (Exception e) { return temp;} } /** * 得到指定日期的一天的开始时刻00:00:00 * * @param date* @return*/public static Date getStartDate(Date date) { String temp = format.format(date);temp += " 00:00:00"; try { return format1.parse(temp);} catch (Exception e) { return null;} } /** * 得到指定日期的一天的开始时刻00:00:00 * * @param date* @return*/public static String getStartDateStr(Date date) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd");String temp = format.format(date);temp += " 00:00:00"; try { return temp;} catch (Exception e) { return temp;} } /** * * @param date* 指定比较日期* @param compareDate* @return*/public static boolean isInDate(Date date, Date compareDate) { if (compareDate.after(getStartDate(date)) && compareDate.before(getFinallyDate(date))) { return true;} else { return false;} } /** * 获取两个时间的差值秒* @param d1* @param d2* @return*/public static Integer getSecondBetweenDate(Date d1,Date d2){ Long second=(d2.getTime()-d1.getTime())/1000; return second.intValue();} private int getYear(Calendar calendar) { return calendar.get(Calendar.YEAR);} private int getMonth(Calendar calendar) { return calendar.get(Calendar.MONDAY) + 1;} private int getDate(Calendar calendar) { return calendar.get(Calendar.DATE);} private int getHour(Calendar calendar) { return calendar.get(Calendar.HOUR_OF_DAY);} private int getMinute(Calendar calendar) { return calendar.get(Calendar.MINUTE);} private int getSecond(Calendar calendar) { return calendar.get(Calendar.SECOND);} private static Calendar getCalendar() { return Calendar.getInstance();} public static DateUtils getDateInstance() { if (date == null) { date = new DateUtils();} return date;}}
原文地址:https://www.cnblogs.com/pxblog/p/10593440.html
时间: 2024-10-11 01:52:56