时间格式常用类

来源:互联网 发布:淘宝直通车步骤 编辑:程序博客网 时间:2024/06/01 09:08
package com.fh.util;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateUtil {private final static SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");private final static SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd");private final static SimpleDateFormat sdfDays = new SimpleDateFormat("yyyyMMdd");private final static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");/** * 获取YYYY格式 *  * @return */public static String getYear() {return sdfYear.format(new Date());}/** * 获取YYYY-MM-DD格式 *  * @return */public static String getDay() {return sdfDay.format(new Date());}/** * 获取YYYYMMDD格式 *  * @return */public static String getDays(){return sdfDays.format(new Date());}/** * 获取YYYY-MM-DD HH:mm:ss格式 *  * @return */public static String getTime() {return sdfTime.format(new Date());}/*** @Title: compareDate* @Description: TODO(日期比较,如果s>=e 返回true 否则返回false)* @param s* @param e* @return boolean  * @throws* @author luguosui */public static boolean compareDate(String s, String e) {if(fomatDate(s)==null||fomatDate(e)==null){return false;}return fomatDate(s).getTime() >=fomatDate(e).getTime();}/** * 格式化日期 *  * @return */public static Date fomatDate(String date) {DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");try {return fmt.parse(date);} catch (ParseException e) {e.printStackTrace();return null;}}/** * 校验日期是否合法 *  * @return */public static boolean isValidDate(String s) {DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");try {fmt.parse(s);return true;} catch (Exception e) {// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对return false;}}public static int getDiffYear(String startTime,String endTime) {DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");try {long aa=0;int years=(int) (((fmt.parse(endTime).getTime()-fmt.parse(startTime).getTime())/ (1000 * 60 * 60 * 24))/365);return years;} catch (Exception e) {// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对return 0;}} 
/**     * <li>功能描述:时间相减得到天数     * @param beginDateStr     * @param endDateStr     * @return     * long      * @author Administrator     */    public static long getDaySub(String beginDateStr,String endDateStr){        long day=0;        java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");        java.util.Date beginDate = null;        java.util.Date endDate = null;                    try {beginDate = format.parse(beginDateStr);endDate= format.parse(endDateStr);} catch (ParseException e) {e.printStackTrace();}            day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000);            //System.out.println("相隔的天数="+day);              return day;    }        /**     * 得到n天之后的日期     * @param days     * @return     */    public static String getAfterDayDate(String days) {    int daysInt = Integer.parseInt(days);            Calendar canlendar = Calendar.getInstance(); // java.util包        canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动        Date date = canlendar.getTime();                SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String dateStr = sdfd.format(date);                return dateStr;    }        /**     * 得到n天之后是周几     * @param days     * @return     */    public static String getAfterDayWeek(String days) {    int daysInt = Integer.parseInt(days);            Calendar canlendar = Calendar.getInstance(); // java.util包        canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动        Date date = canlendar.getTime();                SimpleDateFormat sdf = new SimpleDateFormat("E");        String dateStr = sdf.format(date);                return dateStr;    }     /**     * 某年某月多少天,几周     */    @SuppressWarnings("static-access")public static void getD(){    Calendar calendar = Calendar.getInstance();    calendar.set(calendar.YEAR, 2017);    calendar.set(calendar.MONTH, 1);   //2月    System.out.print("本月天数:"+calendar.getActualMaximum(calendar.DAY_OF_MONTH));    System.out.print("本月周数:"+calendar.getActualMaximum(calendar.WEEK_OF_MONTH));    }    public static void main(String[] args) {    System.out.println(getDays());    System.out.println(getAfterDayWeek("3"));    }/**      * 得到n天之后的日期      * @param days      * @return      */      public static String getAfterDayDate(Date date,String days) {      Calendar canlendar = Calendar.getInstance(); // java.util包      canlendar.setTime(date);          int daysInt = Integer.parseInt(days);          canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动          Date date2 = canlendar.getTime();                    SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd");          String dateStr = sdfd.format(date2);          return dateStr;      }      /**     * 所在周星期一的日期     * @param date     * @return     */    public static String getTimeInterval(Date date){    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");      Calendar calendar = Calendar.getInstance();     calendar.setTime(date);          // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了          int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天          if (1 == dayWeek) {          calendar.add(Calendar.DAY_OF_MONTH, -1);          }          // System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期          // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一          calendar.setFirstDayOfWeek(Calendar.MONDAY);          // 获得当前日期是一个星期的第几天          int day = calendar.get(Calendar.DAY_OF_WEEK);          calendar.add(Calendar.DATE, calendar.getFirstDayOfWeek() - day);          String imptimeBegin = sdf.format(calendar.getTime());          // System.out.println("所在周星期一的日期:" + imptimeBegin);          return imptimeBegin;    }    /**     * 所在周第几天     * @param date     * @return      * @return     */    public static  int getInterval(Date date){    Calendar calendar = Calendar.getInstance();     calendar.setTime(date);      // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了      int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天      if (1 == dayWeek) {      calendar.add(Calendar.DAY_OF_MONTH, -1);      }      // System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期      // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一      calendar.setFirstDayOfWeek(Calendar.MONDAY);      // 获得当前日期是一个星期的第几天      int day = calendar.get(Calendar.DAY_OF_WEEK)-1;      return day;    }    /**     *  获得上周周一 日期    * @return     * @author     */      public static String getLastTimeInterval(){    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");      Calendar calendar = Calendar.getInstance();     int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;      int offset = 1 - dayOfWeek;      calendar.add(Calendar.DATE, offset - 7);      String lastEndDate = sdf.format(calendar.getTime());     return lastEndDate;    }

}

0 0
原创粉丝点击