java 日期处理工具类 DateUtil

  1. package com.util;  
  2.   
  3. import java.text.ParseException;  
  4. import java.text.ParsePosition;  
  5. import java.text.SimpleDateFormat;  
  6. import java.util.Calendar;  
  7. import java.util.Date;  
  8. import java.util.GregorianCalendar;  
  9.   
  10. import org.apache.commons.lang.StringUtils;  
  11. import org.apache.log4j.Logger;  
  12.   
  13.   
  14. /** 
  15.  * 日期处理工具类 
  16.  * @author dylan_xu 
  17.  * @date Mar 11, 2012 
  18.  * @modified by 
  19.  * @modified date 
  20.  * @since JDK1.6 
  21.  * @see com.util.DateUtil 
  22.  */  
  23.   
  24. public class DateUtil {  
  25.     // ~ Static fields/initializers  
  26.     // =============================================  
  27.   
  28.     private static Logger logger = Logger.getLogger(DateUtil.class);  
  29.     private static String defaultDatePattern = null;  
  30.     private static String timePattern = "HH:mm";  
  31.     private static Calendar cale = Calendar.getInstance();  
  32.     public static final String TS_FORMAT = DateUtil.getDatePattern() + " HH:mm:ss.S";  
  33.     /** 日期格式yyyy-MM字符串常量 */  
  34.     private static final String MONTH_FORMAT = "yyyy-MM";  
  35.     /** 日期格式yyyy-MM-dd字符串常量 */  
  36.     private static final String DATE_FORMAT = "yyyy-MM-dd";  
  37.     /** 日期格式HH:mm:ss字符串常量 */  
  38.     private static final String HOUR_FORMAT = "HH:mm:ss";  
  39.     /** 日期格式yyyy-MM-dd HH:mm:ss字符串常量 */  
  40.     private static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";  
  41.     /** 某天开始时分秒字符串常量  00:00:00 */  
  42.     private static final String DAY_BEGIN_STRING_HHMMSS = " 00:00:00";  
  43.     /**  某天结束时分秒字符串常量  23:59:59  */  
  44.     public static final String DAY_END_STRING_HHMMSS = " 23:59:59";  
  45.     private static SimpleDateFormat sdf_date_format = new SimpleDateFormat(DATE_FORMAT);  
  46.     private static SimpleDateFormat sdf_hour_format = new SimpleDateFormat(HOUR_FORMAT);  
  47.     private static SimpleDateFormat sdf_datetime_format = new SimpleDateFormat(DATETIME_FORMAT);  
  48.       
  49.   
  50.     // ~ Methods  
  51.     // ================================================================  
  52.   
  53.     public DateUtil() {  
  54.     }  
  55.   
  56.     /** 
  57.      * 获得服务器当前日期及时间,以格式为:yyyy-MM-dd HH:mm:ss的日期字符串形式返回 
  58.      * @author dylan_xu 
  59.      * @date Mar 11, 2012 
  60.      * @return 
  61.      */  
  62.     public static String getDateTime() {  
  63.         try {  
  64.             return sdf_datetime_format.format(cale.getTime());  
  65.         } catch (Exception e) {  
  66.             logger.debug("DateUtil.getDateTime():" + e.getMessage());  
  67.             return "";  
  68.         }  
  69.     }  
  70.   
  71.     /** 
  72.      * 获得服务器当前日期,以格式为:yyyy-MM-dd的日期字符串形式返回 
  73.      * @author dylan_xu 
  74.      * @date Mar 11, 2012 
  75.      * @return 
  76.      */  
  77.     public static String getDate() {  
  78.         try {  
  79.             return sdf_date_format.format(cale.getTime());  
  80.         } catch (Exception e) {  
  81.             logger.debug("DateUtil.getDate():" + e.getMessage());  
  82.             return "";  
  83.         }  
  84.     }  
  85.   
  86.     /** 
  87.      * 获得服务器当前时间,以格式为:HH:mm:ss的日期字符串形式返回 
  88.      * @author dylan_xu 
  89.      * @date Mar 11, 2012 
  90.      * @return 
  91.      */  
  92.     public static String getTime() {  
  93.         String temp = " ";  
  94.         try {  
  95.             temp += sdf_hour_format.format(cale.getTime());  
  96.             return temp;  
  97.         } catch (Exception e) {  
  98.             logger.debug("DateUtil.getTime():" + e.getMessage());  
  99.             return "";  
  100.         }  
  101.     }  
  102.   
  103.     /** 
  104.      * 统计时开始日期的默认值 
  105.      * @author dylan_xu 
  106.      * @date Mar 11, 2012 
  107.      * @return 
  108.      */  
  109.     public static String getStartDate() {  
  110.         try {  
  111.             return getYear() + "-01-01";  
  112.         } catch (Exception e) {  
  113.             logger.debug("DateUtil.getStartDate():" + e.getMessage());  
  114.             return "";  
  115.         }  
  116.     }  
  117.   
  118.     /** 
  119.      * 统计时结束日期的默认值 
  120.      * @author dylan_xu 
  121.      * @date Mar 11, 2012 
  122.      * @return 
  123.      */  
  124.     public static String getEndDate() {  
  125.         try {  
  126.             return getDate();  
  127.         } catch (Exception e) {  
  128.             logger.debug("DateUtil.getEndDate():" + e.getMessage());  
  129.             return "";  
  130.         }  
  131.     }  
  132.   
  133.     /** 
  134.      * 获得服务器当前日期的年份 
  135.      * @author dylan_xu 
  136.      * @date Mar 11, 2012 
  137.      * @return 
  138.      */  
  139.     public static String getYear() {  
  140.         try {  
  141.             return String.valueOf(cale.get(Calendar.YEAR));  
  142.         } catch (Exception e) {  
  143.             logger.debug("DateUtil.getYear():" + e.getMessage());  
  144.             return "";  
  145.         }  
  146.     }  
  147.   
  148.     /** 
  149.      * 获得服务器当前日期的月份 
  150.      * @author dylan_xu 
  151.      * @date Mar 11, 2012 
  152.      * @return 
  153.      */  
  154.     public static String getMonth() {  
  155.         try {  
  156.             java.text.DecimalFormat df = new java.text.DecimalFormat();  
  157.             df.applyPattern("00;00");  
  158.             return df.format((cale.get(Calendar.MONTH) + 1));  
  159.         } catch (Exception e) {  
  160.             logger.debug("DateUtil.getMonth():" + e.getMessage());  
  161.             return "";  
  162.         }  
  163.     }  
  164.   
  165.     /** 
  166.      * 获得服务器在当前月中天数 
  167.      * @author dylan_xu 
  168.      * @date Mar 11, 2012 
  169.      * @return 
  170.      */  
  171.     public static String getDay() {  
  172.         try {  
  173.             return String.valueOf(cale.get(Calendar.DAY_OF_MONTH));  
  174.         } catch (Exception e) {  
  175.             logger.debug("DateUtil.getDay():" + e.getMessage());  
  176.             return "";  
  177.         }  
  178.     }  
  179.   
  180.     /** 
  181.      * 比较两个日期相差的天数 
  182.      * @author dylan_xu 
  183.      * @date Mar 11, 2012 
  184.      * @param date1 
  185.      * @param date2 
  186.      * @return 
  187.      */  
  188.     public static int getMargin(String date1, String date2) {  
  189.         int margin;  
  190.         try {  
  191.             ParsePosition pos = new ParsePosition(0);  
  192.             ParsePosition pos1 = new ParsePosition(0);  
  193.             Date dt1 = sdf_date_format.parse(date1, pos);  
  194.             Date dt2 = sdf_date_format.parse(date2, pos1);  
  195.             long l = dt1.getTime() - dt2.getTime();  
  196.             margin = (int) (l / (24 * 60 * 60 * 1000));  
  197.             return margin;  
  198.         } catch (Exception e) {  
  199.             logger.debug("DateUtil.getMargin():" + e.toString());  
  200.             return 0;  
  201.         }  
  202.     }  
  203.   
  204.     /** 
  205.      * 比较两个日期相差的天数 
  206.      * @author dylan_xu 
  207.      * @date Mar 11, 2012 
  208.      * @param date1 
  209.      * @param date2 
  210.      * @return 
  211.      */  
  212.     public static double getDoubleMargin(String date1, String date2) {  
  213.         double margin;  
  214.         try {  
  215.             ParsePosition pos = new ParsePosition(0);  
  216.             ParsePosition pos1 = new ParsePosition(0);  
  217.             Date dt1 = sdf_datetime_format.parse(date1, pos);  
  218.             Date dt2 = sdf_datetime_format.parse(date2, pos1);  
  219.             long l = dt1.getTime() - dt2.getTime();  
  220.             margin = (l / (24 * 60 * 60 * 1000.00));  
  221.             return margin;  
  222.         } catch (Exception e) {  
  223.             logger.debug("DateUtil.getMargin():" + e.toString());  
  224.             return 0;  
  225.         }  
  226.     }  
  227.   
  228.     /** 
  229.      * 比较两个日期相差的月数 
  230.      * @author dylan_xu 
  231.      * @date Mar 11, 2012 
  232.      * @param date1 
  233.      * @param date2 
  234.      * @return 
  235.      */  
  236.     public static int getMonthMargin(String date1, String date2) {  
  237.         int margin;  
  238.         try {  
  239.             margin = (Integer.parseInt(date2.substring(04)) - Integer.parseInt(date1.substring(04))) * 12;  
  240.             margin += (Integer.parseInt(date2.substring(47).replaceAll("-0",  
  241.                     "-")) - Integer.parseInt(date1.substring(47).replaceAll("-0""-")));  
  242.             return margin;  
  243.         } catch (Exception e) {  
  244.             logger.debug("DateUtil.getMargin():" + e.toString());  
  245.             return 0;  
  246.         }  
  247.     }  
  248.   
  249.     /** 
  250.      * 返回日期加X天后的日期 
  251.      * @author dylan_xu 
  252.      * @date Mar 11, 2012 
  253.      * @param date 
  254.      * @param i 
  255.      * @return 
  256.      */  
  257.     public static String addDay(String date, int i) {  
  258.         try {  
  259.             GregorianCalendar gCal = new GregorianCalendar(  
  260.                     Integer.parseInt(date.substring(04)),   
  261.                     Integer.parseInt(date.substring(57)) - 1,   
  262.                     Integer.parseInt(date.substring(810)));  
  263.             gCal.add(GregorianCalendar.DATE, i);  
  264.             return sdf_date_format.format(gCal.getTime());  
  265.         } catch (Exception e) {  
  266.             logger.debug("DateUtil.addDay():" + e.toString());  
  267.             return getDate();  
  268.         }  
  269.     }  
  270.   
  271.     /** 
  272.      * 返回日期加X月后的日期 
  273.      * @author dylan_xu 
  274.      * @date Mar 11, 2012 
  275.      * @param date 
  276.      * @param i 
  277.      * @return 
  278.      */  
  279.     public static String addMonth(String date, int i) {  
  280.         try {  
  281.             GregorianCalendar gCal = new GregorianCalendar(  
  282.                     Integer.parseInt(date.substring(04)),   
  283.                     Integer.parseInt(date.substring(57)) - 1,   
  284.                     Integer.parseInt(date.substring(810)));  
  285.             gCal.add(GregorianCalendar.MONTH, i);  
  286.             return sdf_date_format.format(gCal.getTime());  
  287.         } catch (Exception e) {  
  288.             logger.debug("DateUtil.addMonth():" + e.toString());  
  289.             return getDate();  
  290.         }  
  291.     }  
  292.   
  293.     /** 
  294.      * 返回日期加X年后的日期 
  295.      * @author dylan_xu 
  296.      * @date Mar 11, 2012 
  297.      * @param date 
  298.      * @param i 
  299.      * @return 
  300.      */  
  301.     public static String addYear(String date, int i) {  
  302.         try {  
  303.             GregorianCalendar gCal = new GregorianCalendar(  
  304.                     Integer.parseInt(date.substring(04)),   
  305.                     Integer.parseInt(date.substring(57)) - 1,   
  306.                     Integer.parseInt(date.substring(810)));  
  307.             gCal.add(GregorianCalendar.YEAR, i);  
  308.             return sdf_date_format.format(gCal.getTime());  
  309.         } catch (Exception e) {  
  310.             logger.debug("DateUtil.addYear():" + e.toString());  
  311.             return "";  
  312.         }  
  313.     }  
  314.   
  315.     /** 
  316.      * 返回某年某月中的最大天 
  317.      * @author dylan_xu 
  318.      * @date Mar 11, 2012 
  319.      * @param year 
  320.      * @param month 
  321.      * @return 
  322.      */  
  323.     public static int getMaxDay(int iyear, int imonth) {  
  324.         int day = 0;  
  325.         try {  
  326.             if (imonth == 1 || imonth == 3 || imonth == 5 || imonth == 7  
  327.                     || imonth == 8 || imonth == 10 || imonth == 12) {  
  328.                 day = 31;  
  329.             } else if (imonth == 4 || imonth == 6 || imonth == 9 || imonth == 11) {  
  330.                 day = 30;  
  331.             } else if ((0 == (iyear % 4)) && (0 != (iyear % 100)) || (0 == (iyear % 400))) {  
  332.                 day = 29;  
  333.             } else {  
  334.                 day = 28;  
  335.             }  
  336.             return day;  
  337.         } catch (Exception e) {  
  338.             logger.debug("DateUtil.getMonthDay():" + e.toString());  
  339.             return 1;  
  340.         }  
  341.     }  
  342.   
  343.     /** 
  344.      * 格式化日期 
  345.      * @author dylan_xu 
  346.      * @date Mar 11, 2012 
  347.      * @param orgDate 
  348.      * @param Type 
  349.      * @param Span 
  350.      * @return 
  351.      */  
  352.     @SuppressWarnings("static-access")  
  353.     public String rollDate(String orgDate, int Type, int Span) {  
  354.         try {  
  355.             String temp = "";  
  356.             int iyear, imonth, iday;  
  357.             int iPos = 0;  
  358.             char seperater = '-';  
  359.             if (orgDate == null || orgDate.length() < 6) {  
  360.                 return "";  
  361.             }  
  362.   
  363.             iPos = orgDate.indexOf(seperater);  
  364.             if (iPos > 0) {  
  365.                 iyear = Integer.parseInt(orgDate.substring(0, iPos));  
  366.                 temp = orgDate.substring(iPos + 1);  
  367.             } else {  
  368.                 iyear = Integer.parseInt(orgDate.substring(04));  
  369.                 temp = orgDate.substring(4);  
  370.             }  
  371.   
  372.             iPos = temp.indexOf(seperater);  
  373.             if (iPos > 0) {  
  374.                 imonth = Integer.parseInt(temp.substring(0, iPos));  
  375.                 temp = temp.substring(iPos + 1);  
  376.             } else {  
  377.                 imonth = Integer.parseInt(temp.substring(02));  
  378.                 temp = temp.substring(2);  
  379.             }  
  380.   
  381.             imonth--;  
  382.             if (imonth < 0 || imonth > 11) {  
  383.                 imonth = 0;  
  384.             }  
  385.   
  386.             iday = Integer.parseInt(temp);  
  387.             if (iday < 1 || iday > 31)  
  388.                 iday = 1;  
  389.   
  390.             Calendar orgcale = Calendar.getInstance();  
  391.             orgcale.set(iyear, imonth, iday);  
  392.             temp = this.rollDate(orgcale, Type, Span);  
  393.             return temp;  
  394.         } catch (Exception e) {  
  395.             return "";  
  396.         }  
  397.     }  
  398.   
  399.     public static String rollDate(Calendar cal, int Type, int Span) {  
  400.         try {  
  401.             String temp = "";  
  402.             Calendar rolcale;  
  403.             rolcale = cal;  
  404.             rolcale.add(Type, Span);  
  405.             temp = sdf_date_format.format(rolcale.getTime());  
  406.             return temp;  
  407.         } catch (Exception e) {  
  408.             return "";  
  409.         }  
  410.     }  
  411.   
  412.     /** 
  413.      * 返回默认的日期格式 
  414.      * @author dylan_xu 
  415.      * @date Mar 11, 2012 
  416.      * @return 
  417.      */  
  418.     public static synchronized String getDatePattern() {  
  419.         defaultDatePattern = "yyyy-MM-dd";  
  420.         return defaultDatePattern;  
  421.     }  
  422.   
  423.     /** 
  424.      * 将指定日期按默认格式进行格式代化成字符串后输出如:yyyy-MM-dd 
  425.      * @author dylan_xu 
  426.      * @date Mar 11, 2012 
  427.      * @param aDate 
  428.      * @return 
  429.      */  
  430.     public static final String getDate(Date aDate) {  
  431.         SimpleDateFormat df = null;  
  432.         String returnValue = "";  
  433.         if (aDate != null) {  
  434.             df = new SimpleDateFormat(getDatePattern());  
  435.             returnValue = df.format(aDate);  
  436.         }  
  437.         return (returnValue);  
  438.     }  
  439.   
  440.     /** 
  441.      * 取得给定日期的时间字符串,格式为当前默认时间格式 
  442.      * @author dylan_xu 
  443.      * @date Mar 11, 2012 
  444.      * @param theTime 
  445.      * @return 
  446.      */  
  447.     public static String getTimeNow(Date theTime) {  
  448.         return getDateTime(timePattern, theTime);  
  449.     }  
  450.   
  451.     /** 
  452.      * 取得当前时间的Calendar日历对象 
  453.      * @author dylan_xu 
  454.      * @date Mar 11, 2012 
  455.      * @return 
  456.      * @throws ParseException 
  457.      */  
  458.     public Calendar getToday() throws ParseException {  
  459.         Date today = new Date();  
  460.         SimpleDateFormat df = new SimpleDateFormat(getDatePattern());  
  461.         String todayAsString = df.format(today);  
  462.         Calendar cal = new GregorianCalendar();  
  463.         cal.setTime(convertStringToDate(todayAsString));  
  464.         return cal;  
  465.     }  
  466.   
  467.     /** 
  468.      * 将日期类转换成指定格式的字符串形式 
  469.      * @author dylan_xu 
  470.      * @date Mar 11, 2012 
  471.      * @param aMask 
  472.      * @param aDate 
  473.      * @return 
  474.      */  
  475.     public static final String getDateTime(String aMask, Date aDate) {  
  476.         SimpleDateFormat df = null;  
  477.         String returnValue = "";  
  478.   
  479.         if (aDate == null) {  
  480.             logger.error("aDate is null!");  
  481.         } else {  
  482.             df = new SimpleDateFormat(aMask);  
  483.             returnValue = df.format(aDate);  
  484.         }  
  485.         return (returnValue);  
  486.     }  
  487.   
  488.     /** 
  489.      * 将指定的日期转换成默认格式的字符串形式 
  490.      * @author dylan_xu 
  491.      * @date Mar 11, 2012 
  492.      * @param aDate 
  493.      * @return 
  494.      */  
  495.     public static final String convertDateToString(Date aDate) {  
  496.         return getDateTime(getDatePattern(), aDate);  
  497.     }  
  498.   
  499.     /** 
  500.      * 将日期字符串按指定格式转换成日期类型 
  501.      * @author dylan_xu 
  502.      * @date Mar 11, 2012 
  503.      * @param aMask 指定的日期格式,如:yyyy-MM-dd 
  504.      * @param strDate 待转换的日期字符串 
  505.      * @return 
  506.      * @throws ParseException 
  507.      */  
  508.     public static final Date convertStringToDate(String aMask, String strDate)  
  509.             throws ParseException {  
  510.         SimpleDateFormat df = null;  
  511.         Date date = null;  
  512.         df = new SimpleDateFormat(aMask);  
  513.   
  514.         if (logger.isDebugEnabled()) {  
  515.             logger.debug("converting '" + strDate + "' to date with mask '" + aMask + "'");  
  516.         }  
  517.         try {  
  518.             date = df.parse(strDate);  
  519.         } catch (ParseException pe) {  
  520.             logger.error("ParseException: " + pe);  
  521.             throw pe;  
  522.         }  
  523.         return (date);  
  524.     }  
  525.   
  526.     /** 
  527.      * 将日期字符串按默认格式转换成日期类型 
  528.      * @author dylan_xu 
  529.      * @date Mar 11, 2012 
  530.      * @param strDate 
  531.      * @return 
  532.      * @throws ParseException 
  533.      */  
  534.     public static Date convertStringToDate(String strDate)  
  535.             throws ParseException {  
  536.         Date aDate = null;  
  537.   
  538.         try {  
  539.             if (logger.isDebugEnabled()) {  
  540.                 logger.debug("converting date with pattern: " + getDatePattern());  
  541.             }  
  542.             aDate = convertStringToDate(getDatePattern(), strDate);  
  543.         } catch (ParseException pe) {  
  544.             logger.error("Could not convert '" + strDate + "' to a date, throwing exception");  
  545.             throw new ParseException(pe.getMessage(), pe.getErrorOffset());  
  546.         }  
  547.         return aDate;  
  548.     }  
  549.   
  550.     /** 
  551.      * 返回一个JAVA简单类型的日期字符串 
  552.      * @author dylan_xu 
  553.      * @date Mar 11, 2012 
  554.      * @return 
  555.      */  
  556.     public static String getSimpleDateFormat() {  
  557.         SimpleDateFormat formatter = new SimpleDateFormat();  
  558.         String NDateTime = formatter.format(new Date());  
  559.         return NDateTime;  
  560.     }  
  561.       
  562.     /** 
  563.      * 将指定字符串格式的日期与当前时间比较 
  564.      * @author DYLAN 
  565.      * @date Feb 17, 2012 
  566.      * @param strDate 需要比较时间 
  567.      * @return  
  568.      *      <p> 
  569.      *      int code 
  570.      *      <ul> 
  571.      *      <li>-1 当前时间 < 比较时间 </li> 
  572.      *      <li> 0 当前时间 = 比较时间 </li> 
  573.      *      <li>>=1当前时间 > 比较时间 </li> 
  574.      *      </ul> 
  575.      *      </p> 
  576.      */  
  577.     public static int compareToCurTime (String strDate) {  
  578.         if (StringUtils.isBlank(strDate)) {  
  579.             return -1;  
  580.         }  
  581.         Date curTime = cale.getTime();  
  582.         String strCurTime = null;  
  583.         try {  
  584.             strCurTime = sdf_datetime_format.format(curTime);  
  585.         } catch (Exception e) {  
  586.             if (logger.isDebugEnabled()) {  
  587.                 logger.debug("[Could not format '" + strDate + "' to a date, throwing exception:" + e.getLocalizedMessage() + "]");  
  588.             }  
  589.         }  
  590.         if (StringUtils.isNotBlank(strCurTime)) {  
  591.             return strCurTime.compareTo(strDate);  
  592.         }  
  593.         return -1;  
  594.     }  
  595.       
  596.     /** 
  597.      * 为查询日期添加最小时间 
  598.      *  
  599.      * @param 目标类型Date 
  600.      * @param 转换参数Date 
  601.      * @return 
  602.      */  
  603.     @SuppressWarnings("deprecation")  
  604.     public static Date addStartTime(Date param) {  
  605.         Date date = param;  
  606.         try {  
  607.             date.setHours(0);  
  608.             date.setMinutes(0);  
  609.             date.setSeconds(0);  
  610.             return date;  
  611.         } catch (Exception ex) {  
  612.             return date;  
  613.         }  
  614.     }  
  615.   
  616.     /** 
  617.      * 为查询日期添加最大时间 
  618.      *  
  619.      * @param 目标类型Date 
  620.      * @param 转换参数Date 
  621.      * @return 
  622.      */  
  623.     @SuppressWarnings("deprecation")  
  624.     public static Date addEndTime(Date param) {  
  625.         Date date = param;  
  626.         try {  
  627.             date.setHours(23);  
  628.             date.setMinutes(59);  
  629.             date.setSeconds(0);  
  630.             return date;  
  631.         } catch (Exception ex) {  
  632.             return date;  
  633.         }  
  634.     }  
  635.   
  636.     /** 
  637.      * 返回系统现在年份中指定月份的天数 
  638.      *  
  639.      * @param 月份month 
  640.      * @return 指定月的总天数 
  641.      */  
  642.     @SuppressWarnings("deprecation")  
  643.     public static String getMonthLastDay(int month) {  
  644.         Date date = new Date();  
  645.         int[][] day = { { 0302831303130313130313031 },  
  646.                 { 0312931303130313130313031 } };  
  647.         int year = date.getYear() + 1900;  
  648.         if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {  
  649.             return day[1][month] + "";  
  650.         } else {  
  651.             return day[0][month] + "";  
  652.         }  
  653.     }  
  654.   
  655.     /** 
  656.      * 返回指定年份中指定月份的天数 
  657.      *  
  658.      * @param 年份year 
  659.      * @param 月份month 
  660.      * @return 指定月的总天数 
  661.      */  
  662.     public static String getMonthLastDay(int year, int month) {  
  663.         int[][] day = { { 0302831303130313130313031 },  
  664.                 { 0312931303130313130313031 } };  
  665.         if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {  
  666.             return day[1][month] + "";  
  667.         } else {  
  668.             return day[0][month] + "";  
  669.         }  
  670.     }  
  671.   
  672.     /** 
  673.      * 判断是平年还是闰年 
  674.      * @author dylan_xu 
  675.      * @date Mar 11, 2012 
  676.      * @param year 
  677.      * @return 
  678.      */   
  679.     public static boolean isLeapyear(int year) {  
  680.         if ((year % 4 == 0 && year % 100 != 0) || (year % 400) == 0) {  
  681.             return true;  
  682.         } else {  
  683.             return false;  
  684.         }  
  685.     }  
  686.   
  687.     /** 
  688.      * 取得当前时间的日戳 
  689.      * @author dylan_xu 
  690.      * @date Mar 11, 2012 
  691.      * @return 
  692.      */  
  693.     @SuppressWarnings("deprecation")  
  694.     public static String getTimestamp() {  
  695.         Date date = cale.getTime();  
  696.         String timestamp = "" + (date.getYear() + 1900) + date.getMonth()  
  697.                 + date.getDate() + date.getMinutes() + date.getSeconds()  
  698.                 + date.getTime();  
  699.         return timestamp;  
  700.     }  
  701.   
  702.     /** 
  703.      * 取得指定时间的日戳 
  704.      *  
  705.      * @return 
  706.      */  
  707.     @SuppressWarnings("deprecation")  
  708.     public static String getTimestamp(Date date) {  
  709.         String timestamp = "" + (date.getYear() + 1900) + date.getMonth()  
  710.                 + date.getDate() + date.getMinutes() + date.getSeconds()  
  711.                 + date.getTime();  
  712.         return timestamp;  
  713.     }  
  714.   
  715.     public static void main(String[] args) {  
  716.         System.out.println(getYear() + "|" + getMonth() + "|" + getDate());  
  717.     }  
  718. }  

 

附上100%完整的系统项目源码:

JSP图书馆管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97e.html

 

JSP酒店宾馆管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97m.html

 

JSP学生信息管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97r.html

 

 

JSP房屋出售租赁管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a98c.html

 

J2EE酒店在线预订系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97v.html

 

SSH/J2EE人力资源管理系统:http://blog.sina.com.cn/s/blog_4b5bc01101019ztu.html

 

ssh2图书管理系统(图书馆管理系统): http://blog.sina.com.cn/s/blog_4b5bc0110101adf0.html

 

毕业设计-JSP图书馆管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a979.html

 

毕业设计-JSP酒店宾馆管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a97z.html

 

毕业设计-JSP学生信息管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a987.html

 

毕业设计-JSP房屋出售租赁管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101a98a.html

 

毕业设计-s2sh/j2ee图书管理系统 :http://blog.sina.com.cn/s/blog_4b5bc0110101ain5.html

 

ssh2图书管理系统(图书馆管理系统):http://blog.sina.com.cn/s/blog_4b5bc0110101adf0.html

 

毕业设计-jsp信息发布系统(信息供求网站系统):http://blog.sina.com.cn/s/blog_4b5bc0110101aiou.html

 

struts2+servlet+jsp信息发布系统:http://blog.sina.com.cn/s/blog_4b5bc0110101aiop.html

 

毕业设计-jsp电子商城 网上商城系统:http://blog.sina.com.cn/s/blog_4b5bc0110101aiof.html

 

jsp电子商城 网上商城系统(struts+servlet+jsp):http://blog.sina.com.cn/s/blog_4b5bc0110101aio9.html

 

毕业设计-图书管理系统 jsp图书馆系统Struts2+Spring+Ibatis+extjs(ssi):

http://blog.sina.com.cn/s/blog_4b5bc0110101ainu.html

 

Struts2+Spring+Ibatis+extjs(ssi)图书管理系统 jsp图书馆系统:

http://blog.sina.com.cn/s/blog_4b5bc0110101ainh.html

 

ssh2图书管理系统(图书馆管理系统):http://blog.sina.com.cn/s/blog_4b5bc0110101adf0.html

 

毕业设计-s2sh/j2ee图书管理系统 struts2+spring+hibernate:

http://blog.sina.com.cn/s/blog_4b5bc0110101ain5.html

 

 jsp酒店在线预订系统 酒店客房预定系统:http://blog.sina.com.cn/s/blog_4b5bc0110101atb8.html

 

毕业设计 jsp酒店在线预订系统 酒店客房预定系统:http://blog.sina.com.cn/s/blog_4b5bc0110101atbb.html

 

人力资源管理系统 S2SH/J2EE/JAVA:http://blog.sina.com.cn/s/blog_4b5bc0110101azoz.html

 

毕业设计-人力资源管理系统 S2SH/J2EE/JSP:http://blog.sina.com.cn/s/blog_4b5bc0110101azp0.html

 

ssh网上商城 电子商城struts hibernate  :http://blog.sina.com.cn/s/blog_4b5bc0110101b5gr.html

 

毕业设计 ssh网上商城 电子商城struts hibernate:http://blog.sina.com.cn/s/blog_4b5bc0110101b5h2.html

 

毕业设计 ssh电子相册管理系统:http://blog.sina.com.cn/s/blog_4b5bc0110101bkbl.html

 

实用技术:

J2EE/JSP应用技术70实例(源码)(实用): http://blog.sina.com.cn/s/blog_4b5bc0110101acms.html

你可能感兴趣的:(java,日期处理工具类,DateUtil)