国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

java日期操作工具類(獲取指定日期、日期轉(zhuǎn)換、相隔天數(shù))

2019-11-26 14:11:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例為大家分享了java日期操作工具類,獲取指定日期前一天、后一天;日期轉(zhuǎn)換;兩個(gè)日期之間相隔天數(shù)等工具類,供大家參考,具體內(nèi)容如下

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List; public class DateUtil {     /**   * 獲得指定日期的前一天   *    * @param specifiedDay   * @param format   * @return   * @throws Exception   */  public static Date getDayBefore(Date date, String format) {    Calendar c = Calendar.getInstance();    c.setTime(date);    int day = c.get(Calendar.DATE);    c.set(Calendar.DATE, day - 1);     String dayBeforeStr = new SimpleDateFormat(format).format(c.getTime());         Date dayBefore = null;    try {      dayBefore = new SimpleDateFormat(format).parse(dayBeforeStr);    } catch (ParseException e) {      e.printStackTrace();    }    return dayBefore;  }        /**   * 獲得指定日期的后一天   *    * @param specifiedDay   * @return   */  public static Date getDayAfter(Date date, String format) {    Calendar c = Calendar.getInstance();    c.setTime(date);    int day = c.get(Calendar.DATE);    c.set(Calendar.DATE, day + 1);    String dayAfterStr = new SimpleDateFormat(format).format(c.getTime());    Date dayAfter = null;    try {      dayAfter = new SimpleDateFormat(format).parse(dayAfterStr);    } catch (ParseException e) {      e.printStackTrace();    }    return dayAfter;  }         /**   * 獲得指定日期的前一天   *    * @param specifiedDay   * @param format   * @return   * @throws Exception   */  public static String getSpecifiedDayBefore(String specifiedDay, String format) {    // SimpleDateFormat simpleDateFormat = new    // SimpleDateFormat("yyyy-MM-dd");    Calendar c = Calendar.getInstance();    Date date = null;    try {      date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);    } catch (ParseException e) {      e.printStackTrace();    }    c.setTime(date);    int day = c.get(Calendar.DATE);    c.set(Calendar.DATE, day - 1);     String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());    return dayBefore;  }   /**   * 獲得指定日期的后一天   *    * @param specifiedDay   * @return   */  public static String getSpecifiedDayAfter(String specifiedDay, String format) {    Calendar c = Calendar.getInstance();    Date date = null;    try {      // date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);      date = new SimpleDateFormat(format).parse(specifiedDay);    } catch (ParseException e) {      e.printStackTrace();    }    c.setTime(date);    int day = c.get(Calendar.DATE);    c.set(Calendar.DATE, day + 1);     // String dayAfter=new    // SimpleDateFormat("yyyy-MM-dd").format(c.getTime());    String dayAfter = new SimpleDateFormat(format).format(c.getTime());    return dayAfter;  }     /**   * 將date類型準(zhǔn)成指定format格式的字符串   *    * @param day 日期   * @param format 指定格式   * @return   */  public static String date2String(Date day, String format) {    String dateStr = new SimpleDateFormat(format).format(day.getTime());    return dateStr;  }   /**   * 將字符串轉(zhuǎn)成指定格式的date類型   *    * @param day 日期   * @param format 指定格式   * @return   */  public static Date string2Date(String dateStr,String format) {    Date strDate = null;    try {      strDate = new SimpleDateFormat(format).parse(dateStr);    } catch (ParseException e) {      e.printStackTrace();    }    return strDate;  }        /**   *   * @Title: DateDate2CompareValue   * @Description: 兩個(gè)date類型比較大小  * @param dayAfter date類型  * @param date   date類型  * @param 格式化  * @return boolean    * @throws   */  public static boolean DateDate2CompareValue(Date dayAfter, Date date, String pattern) {    SimpleDateFormat sdf = new SimpleDateFormat(pattern);    try {      Date d1 = sdf.parse(sdf.format(dayAfter));      Date d2 = sdf.parse(sdf.format(date));      if(d1.getTime()>=d2.getTime()){        return true;      }    } catch (ParseException e) {      e.printStackTrace();    }    return false;  }   /**   * 比較兩個(gè)日期年月日的大小  * @Title: DateCompareValue   * @Description: 一個(gè)stirng一個(gè)date類型比較大小  * @param date1 String類型  * @param date2 date類型  * @param @return    * @return boolean    * @throws   */  public static boolean DateStrDateCompareValue(String date1, Date date, String pattern) {    SimpleDateFormat sdf = new SimpleDateFormat(pattern);    try {      Date d1 = sdf.parse(date1);      Date d2 = sdf.parse(sdf.format(date));      if(d1.getTime()>=d2.getTime()){        return true;      }    } catch (ParseException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }    return false;  }   /**   * 比較兩個(gè)日期年月日的大小  * @Title: DateStr2CompareValue   * @Description: 兩個(gè)string類型比較時(shí)間大小  * @param date1  * @param date2  * @return boolean    * @throws   */  @SuppressWarnings("unused")  public static boolean DateStr2CompareValue(String date1, String date2,String pattern) {  SimpleDateFormat sdf = new SimpleDateFormat(pattern);  try {    Date d1 = sdf.parse(date1);    Date d2 = sdf.parse(date2);    if(d1.getTime()>=d2.getTime()){      return true;    }  } catch (ParseException e) {    e.printStackTrace();  }       return false;  }     /**   *   * @Title: get2DateListDate   * @date 2016年5月17日 下午2:11:48   * @Description: 獲取時(shí)間之內(nèi)的 相隔天數(shù)的date集合  * @param @param preDate 開(kāi)始時(shí)間  * @param @param nextDate 結(jié)束時(shí)間  * @param @param format  fomat格式  * @param @return    * @return List<Date> 相隔天數(shù)集合   * @throws   */  public static List<Date> get2DateListDate(String preDate, String nextDate, String format) {    List<Date> list = new ArrayList<>();    if(nextDate.equals(preDate)){//開(kāi)始時(shí)間 結(jié)束時(shí)間相等就直接返回      list.add(DateUtil.string2Date(preDate, format));      return list;    }    String nexDate = DateUtil.getSpecifiedDayAfter(preDate, format);    list.add(DateUtil.string2Date(preDate, format));    list.add(DateUtil.string2Date(nexDate, format));    while (!nexDate.equals(nextDate)) {      String nextnextDate = DateUtil.getSpecifiedDayAfter(nexDate, format);      list.add(DateUtil.string2Date(nextnextDate, format));      nexDate = nextnextDate;    }    return list;  }     /**   *   * @Title: get2DateListDate   * @date 2016年5月17日 下午2:11:48   * @Description: 獲取時(shí)間之內(nèi)的 相隔天數(shù)的string集合  * @param @param preDate 開(kāi)始時(shí)間  * @param @param nextDate 結(jié)束時(shí)間  * @param @param format  fomat格式  * @param @return    * @return List<Date> 相隔天數(shù)集合   * @throws   */  public static List<String> get2DateListDateStr(String preDate, String nextDate, String format) {    List<String> list = new ArrayList<>();    if(nextDate.equals(preDate)){//如果開(kāi)始時(shí)間等于結(jié)束時(shí)間那么就是同一天      list.add(preDate);      return list;    }    String nexDate = DateUtil.getSpecifiedDayAfter(preDate, format);    list.add(preDate);    list.add(nexDate);    while (!nexDate.equals(nextDate)) {      String nextnextDate = DateUtil.getSpecifiedDayAfter(nexDate, format);      list.add(nextnextDate);      nexDate = nextnextDate;    }    return list;  }        /**   *   * @Title: get2DateListWithDate   * @date 2016年5月26日 上午9:20:29   * @Description: 獲取兩個(gè)日期之間日期的   * @param @param startDate 開(kāi)始日期 date類型  * @param @param endDate  結(jié)束日期 date類型  * @param @return    * @return List<Date>  datelist  * @throws   */  public static List<Date> get2DateListWithDate(Date startDate, Date endDate,String format) {    List<Date> list = new ArrayList<>();    if(startDate.getTime() >endDate.getTime()){      return list;    }    String startDateStr = DateUtil.date2String(startDate, format);    String endDateStr = DateUtil.date2String(endDate, format);    if(startDateStr.equals(endDateStr)){//如果開(kāi)始時(shí)間等于結(jié)束時(shí)間那么就是同一天      list.add(startDate);      return list;    }    Date nextDate = DateUtil.getDayAfter(startDate, format);    String nextDateStr = DateUtil.date2String(nextDate, format);    //String endDateStr = DateUtil.date2String(endDate, format);    list.add(startDate);    list.add(nextDate);    while (!nextDateStr.equals(endDateStr)) {      String nextnextDate = DateUtil.getSpecifiedDayAfter(nextDateStr, format);      list.add(DateUtil.string2Date(nextnextDate, format));      nextDateStr = nextnextDate;    }              return list;  }         public static void main(String[] args) throws Exception {     /**/ String preDate = getSpecifiedDayBefore("2016-05-01", "yyyy-MM-dd");    String nextDate = getSpecifiedDayAfter("2016-05-03", "yyyy-MM-dd");     Date befroDay = getDayBefore(new Date(), "yyyy-MM-dd");    Date dateAfter = getDayAfter(new Date(), "yyyy-MM-dd");     // System.out.println("前一天:" + preDate + " 后一天:" + nextDate);    // System.err.println("前一天:" +date2String( befroDay ,"yyyy-MM-dd")+ "    // 后一天:" + dateAfter);     String mat = "yyyy-MM-dd";// 這里最好從數(shù)據(jù)庫(kù)中讀取    SimpleDateFormat dateTimeFormat = new SimpleDateFormat(mat);    Date dd = DateUtil.getDayBefore(new Date(), mat);    // Date befroDay = getDayBefore(new Date(), "yyyy-MM-dd");    String sd = date2String(befroDay, "yyyy-MM-dd");    String dateStr = dateTimeFormat.format(befroDay);    // System.out.println("dateStr="+dateStr+" sd "+sd);     //List<Date> listDate = get2DateListDate("2016-05-01", "2016-05-03", "yyyy-MM-dd");    //List<String> listDateStr = get2DateListDateStr("2016-05-01", "2016-05-03", "yyyy-MM-dd");    Date startDate = new Date();    Date endDate = dateTimeFormat.parse("2016-05-31");    List<Date> listDate = get2DateListWithDate(startDate,endDate,"yyyy-MM-dd");         for (int i = 0; i < listDate.size(); i++) {      System.err.println(listDate.get(i));    }     /*for (int i = 0; i < listDateStr.size(); i++) {      //System.out.println(listDateStr.get(i));    }*/   }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)java程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 田林县| 滦南县| 都江堰市| 夏津县| 长阳| 子长县| 且末县| 清徐县| 论坛| 漳州市| 辽阳县| 宁河县| 镇雄县| 桐庐县| 邮箱| 北辰区| 介休市| 琼中| 固安县| 阳新县| 夏津县| 阿尔山市| 临颍县| 周口市| 天台县| 黄浦区| 曲麻莱县| 宜宾县| 霍邱县| 安平县| 永修县| 石棉县| 玉门市| 福贡县| 兴山县| 长葛市| 襄城县| 安泽县| 贵定县| 衡南县| 梨树县|