package com.qxueyou.scc.base.util; /** * ¼Ç¼ÏîÄ¿¹ÜÀí²¿·ÖºËÐĵÄÊý¾Ý¿â×ÖµäÐÅÏ¢£»»ù´¡²Ù×÷Form * * @author µËÖ¾ÓÀ * @since JDK1.6 * @history 2014-11-28 µËÖ¾ÓÀ н¨ */ import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; import org.apache.commons.lang3.StringUtils; public class DateUtils { /** * ¸ù¾Ý¸ñʽ»ñµÃÈÕÆÚ×Ö·û´® * * @param sFormat * @return */ public String getDateStr(String sFormat) { Calendar tCal = Calendar.getInstance(); Timestamp ts = new Timestamp(tCal.getTime().getTime()); java.util.Date date = new java.util.Date(ts.getTime()); SimpleDateFormat formatter = new SimpleDateFormat(sFormat, Locale.CHINA); return formatter.format(date); } /** * ¸ù¾Ý¸ø¶¨¸ñʽ»ñÈ¡ÌØ¶¨Ê±¼äµÄ¸ñʽ»¯ÏÔʾ * * @param ts * @param sFormat * @return */ public String getDateFormat(Timestamp ts, String sFormat) { Date date = new Date(ts.getTime()); SimpleDateFormat formatter = new SimpleDateFormat(sFormat, Locale.CHINA); return formatter.format(date); } /** * ¸ñʽ»¯ÈÕÆÚ * * @param ts * @return */ public String getSDate(Timestamp ts) { Date date = new Date(ts.getTime()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); return formatter.format(date); } /** * ½«StringÀàÐ͵ÄÈÕÆÚת»»ÎªÊ±¼ä * * @param dt * @return */ public Timestamp getTs(String dt) { Date date = java.sql.Date.valueOf(dt); Calendar tCal = Calendar.getInstance(); tCal.setTime(date); return new Timestamp(tCal.getTime().getTime()); } /** * ½¨Òé»ñµÃ¶ÌÈͮ򵀫¦Àí·½Ê½ ÀýÈç: getShortDate(2004-10-10 10:10:10.123) = 2004-10-10 * * @param dt * @return */ public String getShortDate(String dt) { try { return dt.substring(0, dt.indexOf(' ')); } catch (Exception e) { return dt; } } /** * È¡µÃµ±Ç°ÈÕÆÚʱ¼ä * * @return */ public Timestamp getCurrDateTime() { Calendar tCal = Calendar.getInstance(); return new Timestamp(tCal.getTime().getTime()); } /** * È¡µÃµ±Ç°ÈÕÆÚʱ¼ä ºÁÃëΪ0 * * @return */ public static Timestamp getCurrTime() { Calendar tCal = Calendar.getInstance(); tCal.set(Calendar.MILLISECOND, 0); return new Timestamp(tCal.getTime().getTime()); } /** * »ñµÃ×î³£¼ûµÄÈÕÆÚ¸ñʽÄÚÈÝ : Äê-ÔÂ-ÈÕ Ð¡Ê±-·ÖÖÓ-Ãë * * @param ts * @return */ public String getSDateTime(Timestamp ts) { return getDateFormat(ts, "yyyy-MM-dd HH:mm:ss"); } /* ¸ñʽ»¯ÈÕÆÚ */ public String getSTime(Timestamp ts) { return getDateFormat(ts, "HH:mm:ss"); } /** * »ñÈ¡µ±ÌìµÄÈÕÆÚ * * @return */ public final static String getToday() { java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); return formatter.format(ts); } // ¸ù¾Ýʱ¼ä»ñµÃËæ»úÊý public String getRnd() { Calendar tCal = Calendar.getInstance(); Timestamp ts = new Timestamp(tCal.getTime().getTime()); java.util.Date date = new java.util.Date(ts.getTime()); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddhhmmss", Locale.CHINA); String tmpStr = formatter.format(date) + Math.round(Math.random() * 1000 + 1); return tmpStr; } /** * ¼ÆËãÈÕÆÚÖ®¼äµÄ²îÖµ 2004-3-25 Ôö¼Ó * * @param dt1 * @param dt2 * @return */ public int dateDiff(Timestamp dt1, Timestamp dt2) { long ldate1 = dt1.getTime(); long ldate2 = dt2.getTime(); return (int) ((ldate2 - ldate1) / (1000 * 60 * 60 * 24)); } /** * ¼ÆËã·ÖÖÓ * * @param dt1 * @param dt2 * @return */ public int minuteDiff(Timestamp dt1, Timestamp dt2) { long ldate1 = dt1.getTime(); long ldate2 = dt2.getTime(); return (int) ((ldate2 - ldate1) / (1000 * 60)); } /** * »ñÈ¡Ã÷ÌìµÄÈÕÆÚ * * @return */ public String getTomorrow() { return getNextDay(getToday()); } /** * »ñµÃµ±Ç°ÈÕÆÚµÄÏÂÒ»Ìì * * @param date * @return */ public String getNextDay(String date) { if (StringUtils.isBlank(date)) { return ""; } SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); Calendar calendar = Calendar.getInstance(); try { calendar.setTime(f.parse(date)); } catch (ParseException ex) { return date; } calendar.add(5, 1); return f.format(calendar.getTime()); } /** * LST numΪÕý:µ±Ç°ÈÕÆÚºónumÌìÊÇ·µ»ØÖµ numΪ¸º:µ±Ç°ÈÕÆÚǰnumÌìÊÇ·µ»ØÖµ ·µ»ØµÄÈÕÆÚµÄ¸ñʽ:yyyy-MM-dd */ public static String getTheDay(int num) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); GregorianCalendar gc = new GregorianCalendar(); gc.add(GregorianCalendar.DATE, num); Date theday = gc.getTime(); return sdf.format(theday); } /** * ½«ÈÕÆÚÓÉStringת»»ÎªDateÀàÐÍ * * @param date * @return * @throws ParseException */ public static Date convertStringToDate(String sdate) throws ParseException { String date = sdate; if (StringUtils.isBlank(date)) { date = getToday(); } SimpleDateFormat objDateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); Date objDate = objDateFormat.parse(date); return objDate; } /** * ½«ÈÕÆÚÓÉStringת»»ÎªDateÀàÐÍ * * @param date * @param format * @return * @throws ParseException */ public static Date convertStringToDate(String sdate, String format) throws ParseException { String date = sdate; SimpleDateFormat objDateFormat = new SimpleDateFormat(format, Locale.CHINA); if (StringUtils.isBlank(date)) { java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis()); date = objDateFormat.format(ts); } Date objDate = objDateFormat.parse(date); return objDate; } /** * ½«ÈÕÆÚÓÉyyyyÄêMMÔÂStringת»»ÎªDateÀàÐÍ * * @param date * @return * @throws ParseException */ public static Date convertStringToDateCh(String sdate) throws ParseException { String date = sdate; SimpleDateFormat objDateFormat = new SimpleDateFormat("yyyyÄêMMÔÂ", Locale.CHINA); if (StringUtils.isBlank(date)) { java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis()); date = objDateFormat.format(ts); } Date objDate = objDateFormat.parse(date); return objDate; } /** * È¡µÃÖ¸¶¨ÄêÔµĵÚÒ»Ìì * @param year * @param month * @return */ public static String getLastDayOfMonthToString(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", Locale.CHINA).format(cal.getTime()); } /** * È¡µÃÖ¸¶¨ÄêÔµÄ×îºóÒ»Ìì * @param year * @param month * @return */ public static String getFirstDayOfMonthToString(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", Locale.CHINA).format(cal.getTime()); } /** * È¡µÃÖ¸¶¨ÄêÔµĵÚÒ»Ìì * @param year * @param month * @return */ public static Date getLastDayOfMonthToDate(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 cal.getTime() ; } /** * È¡µÃÖ¸¶¨ÄêÔµÄ×îºóÒ»Ìì * @param year * @param month * @return */ public static Date getFirstDayOfMonthToDate(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 cal.getTime(); } /** * µÃµ½Ò»¶Îʱ¼äÄÚÓжàÉÙÖÜ * @param startTime * @param endTime * @return */ public static int getWeekCounts(Date startTime,Date endTime){ Calendar c_begin = Calendar.getInstance(); Calendar c_end = Calendar.getInstance(); c_begin.setTime(startTime); c_end.setTime(endTime); int count = 1; while(c_begin.before(c_end)){ if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){ count++; } c_begin.add(Calendar.DAY_OF_YEAR, 1); } return count; } /** * µÃµ½ÈÕÆÚµÄÄê * @param date * @return */ public static int getYearInDate(Date date){ Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal.get(Calendar.YEAR); } /** * µ±Ç°Ê±¼ä´¦ÓÚÒ»¶Îʱ¼äµÄµÚ¼¸ÖÜ * @param startTime * @param endTime * @return */ public static int getWeekIndex(Date startTime,Date endTime){ Calendar begin = Calendar.getInstance(); Calendar end = Calendar.getInstance(); begin.setTime(startTime); end.setTime(endTime); int count = 1; Calendar now = Calendar.getInstance(); while(begin.before(end)){ if(begin.get(Calendar.YEAR) == now.get(Calendar.YEAR) && begin.get(Calendar.MONTH) == now.get(Calendar.MONTH) && begin.get(Calendar.DAY_OF_MONTH) == now.get(Calendar.DAY_OF_MONTH)){ return count ; } if(begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){ count++; } begin.add(Calendar.DAY_OF_YEAR, 1); } return count; } /** * Ö¸¶¨Ê±¼ä´¦ÓÚÒ»¶Îʱ¼äµÄµÚ¼¸ÖÜ * @param startTime * @param endTime * @return */ public static int getSpecifyWeekIndex(Date startTime,Date endTime,Date specifyDate){ Calendar begin = Calendar.getInstance(); Calendar end = Calendar.getInstance(); begin.setTime(startTime); end.setTime(endTime); int count = 1; Calendar specify = Calendar.getInstance(); specify.setTime(specifyDate); while(begin.before(end)){ if(begin.get(Calendar.YEAR) == specify.get(Calendar.YEAR) && begin.get(Calendar.MONTH) == specify.get(Calendar.MONTH) && begin.get(Calendar.DAY_OF_MONTH) == specify.get(Calendar.DAY_OF_MONTH)){ return count ; } if(begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){ count++; } begin.add(Calendar.DAY_OF_YEAR, 1); } return count; } }