DateUtils

    xiaoxiao2023-09-05  189

    

    package cn.com.css.common.util;

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar;

    import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;

    /**  * 用于处理JAVA中的DATE型数据的转换  *  * @version 1.0  */ public class DateUtil {

     private static Log log = LogFactory.getLog(DateUtil.class);

     private static String datePattern = "yyyy-MM-dd";

     private static String timePattern = "HH:mm:ss";

     /**   * Return 缺省的日期格式 (yyyy-MM-dd)   *   * @return 在页面中显示的日期格式   */  public static String getDatePattern() {   return datePattern;  }

     /**   * Return 缺省的时间格式 (HH:mm:ss)   *   * @return 在页面中显示的日期格式   */  public static final String getTimePattern() {   return timePattern;  }

     /**   * Return 缺省的日期+时间格式 (yyyy-MM-dd HH:mm:ss)   *   * @return 在页面中显示的日期格式   */  public static final String getDateTimePattern() {   return datePattern + " " + timePattern;  }

     /**   * 按照日期格式,将字符串解析为日期对象   *   * @param aMask   *            输入字符串的格式   * @param strDate   *            按aMask格式排列的日期的字符串描述   * @return Date 对象   *   * @throws ParseException   */  public static final Date convertStringToDate(String aMask, String strDate) {   SimpleDateFormat df = null;   Date chgDate = null;   try {    df = new SimpleDateFormat(aMask);    chgDate = df.parse(strDate);   } catch (ParseException pe) {    log.error("from string convert to date is error :"      + pe.getMessage());   }   return chgDate;  }

     /**   * 按照日期格式,将字符串解析为日期对象.格式'yyyy-mm-dd HH:mm:ss'   *   * @param strDate   *            按aMask格式排列的日期的字符串描述   * @return Date 对象   */  public static final Date convertStringToDate(String strDate) {   return convertStringToDate(getDateTimePattern(), strDate);  }

     /**   * 按照日期格式,将日期对象解析为字符串   *   * @param aMask   *            输入字符串的格式   * @param aDate   *            按aMask格式排列的日期对象   * @return String 字符串   *   * @throws ParseException   */  public static String convertDateToString(String aMask, Date aDate) {   SimpleDateFormat df = null;   try {    df = new SimpleDateFormat(aMask);   } catch (Exception ex) {    log.error("from date convert to string is error :"      + ex.getMessage());   }   return df.format(aDate);  }

     /**   * 按照日期格式,将日期对象解析为字符串.格式'yyyy-mm-dd HH:mm:ss'   *   * @param strDate   *            按aMask格式排列的日期的字符串描述   * @return Date 对象   */  public static final String convertDateToString(Date aDate) {   return convertDateToString(getDateTimePattern(), aDate);  }

     /**   * 返回当前日期   *   * @param aMask   *            日期格式   *   * @return   */  public static String getLocalDateTime(String aMask) {   SimpleDateFormat df = new SimpleDateFormat(aMask);   String returnValue = df.format(new Date());   return returnValue;  }

     /**   * 返回当前日期,格式'yyyy-mm-dd'   *   * @return   */  public static String getLocalDate() {   return getLocalDateTime(getDatePattern());  }

     /**   * 返回当前时间,格式'yyyy-mm-dd HH:mm:ss'   *   * @return   */  public static final String getLocalDateTime() {   return getLocalDateTime(getDateTimePattern());  }

     /**   * 返回当前日期   *   * @param aMask   *            日期格式   *   * @return   */  public static Date loadLocalDateTime(String aMask) {   return convertStringToDate(aMask, getLocalDateTime(aMask));  }

     /**   * 返回当前日期,格式'yyyy-mm-dd'   *   * @return   */  public static Date loadLocalDate() {   return loadLocalDateTime(getDatePattern());  }

     /**   * 返回当前时间,格式'yyyy-mm-dd HH:mm:ss'   *   * @return   */  public static final Date loadLocalDateTime() {   return loadLocalDateTime(getDateTimePattern());  }

     /**   * 得到日历对象Calendar,格式:yyyy-MM-dd   *   * @return the current date   * @throws ParseException   */  public static Calendar getCalendar() throws ParseException {   Date today = new Date();   SimpleDateFormat df = new SimpleDateFormat(datePattern);   String todayAsString = df.format(today);   Calendar cal = new GregorianCalendar();   cal.setTime(convertStringToDate(getDatePattern(), todayAsString));   return cal;  }

     public static String getYear() {   Date date = new Date();   return convertDateToString("yyyy", date);  }

     public static String getMonth() {   Date date = new Date();   return convertDateToString("MM", date);  }

     public static String getDay() {   Date date = new Date();   return convertDateToString("dd", date);  }

     /**   * 日期增大   *   * @param date   *            Date   * @param field   *            int 1年 2月 3周 5天   * @param amount   *            int 增加数量   * @return Date   */  public static Date addDate(Date date, int field, int amount) {   GregorianCalendar gc = new GregorianCalendar();   gc.setTime(date);   gc.add(field, amount);   return gc.getTime();  }

     /**   * 得到Calendar的TimeInMilli   *   * @param date   * @return   */  public static long getMillis(Date date) {   if (date != null) {    Calendar c = Calendar.getInstance();    c.setTime(date);    return c.getTimeInMillis();   } else {    return 0;   }  }

     /**   * 日期相减   *   * @param date   *            Date   * @param day   *            int   * @return Date   */  public static Date diffDate(Date date, int day) {   if (date != null) {    Calendar c = Calendar.getInstance();    long iLong = getMillis(date) - ((long) day) * 24 * 3600 * 1000;    c.setTimeInMillis(iLong);    return c.getTime();   } else {    return new Date();   }  }

     /**   * 得到一年当中的星期   *   * @param date   * @return   */  public static String getWeekOfYearByString(Date date) {   if (date != null) {    Calendar c = new GregorianCalendar();    c.setFirstDayOfWeek(Calendar.MONDAY);    c.setMinimalDaysInFirstWeek(7);    c.setTime(date);    int week = c.get(Calendar.WEEK_OF_YEAR);    if (week > 9) {     return convertDateToString("yyyy", date) + week;    } else {     return convertDateToString("yyyy", date) + "0" + week;    }   } else {    return null;   }  }

     /**   * 获取某月的第一天,或最后一天   *   * @param date   *            Date   * @param flag   *            boolean true为第一天 false为最后一天   * @return String   */  public static final String getDateByMonth(Date date, boolean flag) {   Calendar cal = Calendar.getInstance();   cal.setTime(date);   int i = 0;   if (flag) {    i = cal.getActualMinimum(Calendar.DAY_OF_MONTH);   } else {    i = cal.getActualMaximum(Calendar.DAY_OF_MONTH);   }   if (i > 9) {    return i + "";   } else {    return "0" + i;   }  }

     /**   * 获取某周的第一天,或最后一天   *   * @param year   *            int   * @param week   *            int   * @param flag   *            boolean true为第一天 false为最后一天   * @return Date   */  public static Date getDateByWeek(int year, int week, boolean flag) {   Calendar calendar = Calendar.getInstance();   calendar.set(Calendar.YEAR, year);   calendar.set(Calendar.WEEK_OF_YEAR, week);   calendar.set(Calendar.DAY_OF_WEEK, 7);   // 得到今天是星期几,星期日为1   int datInWeek = calendar.get(Calendar.DAY_OF_WEEK);   System.out.println(datInWeek);   // Clone一个新的   Calendar calendar1 = (Calendar) calendar.clone();   if (flag) {    calendar.add(Calendar.DAY_OF_MONTH, -(datInWeek - 2));    return calendar.getTime();   } else {    calendar1.add(Calendar.DAY_OF_MONTH, 7 - datInWeek);    return addDate(calendar.getTime(), 5, 1);   }  }

     /**   * 日期计算   *   * @param date   *            起始日期   * @param yearNum   *            年增减数   * @param monthNum   *            月增减数   * @param dateNum   *            日增减数   */  public static String calDate(String date, int yearNum, int monthNum,    int dateNum) {   String result = "";   try {    SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");    Calendar cal = Calendar.getInstance();    cal.setTime(sd.parse(date));    cal.add(Calendar.MONTH, monthNum);    cal.add(Calendar.YEAR, yearNum);    cal.add(Calendar.DATE, dateNum);    result = sd.format(cal.getTime());   } catch (Exception e) {    e.printStackTrace();   }   return result;  }

     /**   * 得到系统时间数字:1260168985734   *   * @return   */  public static long getLongTime() {   return System.currentTimeMillis();  }

     /**   * 得到系统时间数字:1260168985734   *   * @return   */  public static String getLongDate() {   long d = System.currentTimeMillis();   return String.valueOf(d);  }

     /**   * 当天开始时间   *   * @return   * @attention   * @author 涂作权   * @date 2013-10-13   * @note begin modify by 涂作权 2013-10-13 获得一天的开始时间   */  public static Date getStartTimeOfDay() {   Calendar calendar = new GregorianCalendar();   calendar.set(Calendar.HOUR_OF_DAY, 0);   calendar.set(Calendar.MINUTE, 0);   calendar.set(Calendar.SECOND, 0);   calendar.set(Calendar.MILLISECOND, 0);   return calendar.getTime();  }

     /**   * 当天的结束时间   *   * @return   * @attention   * @author 涂作权   * @date 2013-10-13   * @note begin modify by 涂作权 2013-10-13 添加一天的最后时间   */  public static Date getEndTimeOfDay() {   Calendar calendar = new GregorianCalendar();   calendar.set(Calendar.HOUR_OF_DAY, 23);   calendar.set(Calendar.MINUTE, 59);   calendar.set(Calendar.SECOND, 59);   calendar.set(Calendar.MILLISECOND, 999);   return calendar.getTime();  }

     /**   * \brief 将long的数据变成Date类型,进而变成String类型   *   * @param dateFormat 日期格式   * @param millSec 毫秒值   * @return   * @attention   * @author 涂作权   * @date 2014-2-21   * @note begin modify by null   */  public static String transferLongToDate(String dateFormat, long millSec) {   SimpleDateFormat sf = new SimpleDateFormat(dateFormat);   Date date = new Date(millSec);   return sf.format(date);  } }

    相关资源:DateUtils(日期工具类)
    最新回复(0)