最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年06月15日 09:56:13   作者:司凱子  
這篇文章主要為大家詳細介紹了java日期操作工具類,包括獲取指定日期、日期轉(zhuǎn)換、相隔天數(shù)等操作,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java日期操作工具類,獲取指定日期前一天、后一天;日期轉(zhuǎn)換;兩個日期之間相隔天數(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類型準成指定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: 兩個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;
  }
 
  /**
   * 比較兩個日期年月日的大小
  * @Title: DateCompareValue 
  * @Description: 一個stirng一個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;
  }
 
  /**
   * 比較兩個日期年月日的大小
  * @Title: DateStr2CompareValue 
  * @Description: 兩個string類型比較時間大小
  * @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: 獲取時間之內(nèi)的 相隔天數(shù)的date集合
  * @param @param preDate 開始時間
  * @param @param nextDate 結(jié)束時間
  * @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)){//開始時間 結(jié)束時間相等就直接返回
      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: 獲取時間之內(nèi)的 相隔天數(shù)的string集合
  * @param @param preDate 開始時間
  * @param @param nextDate 結(jié)束時間
  * @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)){//如果開始時間等于結(jié)束時間那么就是同一天
      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: 獲取兩個日期之間日期的 
  * @param @param startDate 開始日期 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)){//如果開始時間等于結(jié)束時間那么就是同一天
      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ù)庫中讀取
    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));
    }*/
 
  }

以上就是本文的全部內(nèi)容,希望對大家的學習java程序設(shè)計有所幫助。

相關(guān)文章

最新評論

德惠市| 饶平县| 固阳县| 博湖县| 南汇区| 武平县| 饶平县| 榆林市| 马尔康县| 唐海县| 保定市| 香港 | 元江| 翁牛特旗| 饶阳县| 延寿县| 承德县| 青铜峡市| 岳普湖县| 大名县| 同德县| 揭阳市| 沭阳县| 泾川县| 剑阁县| 黑山县| 贵定县| 金寨县| 萨迦县| 青冈县| 县级市| 河北省| 尤溪县| 崇州市| 颍上县| 德庆县| 江达县| 南郑县| 乌鲁木齐市| 麟游县| 邢台市|