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

常用的java日期比較和日期計(jì)算方法小結(jié)

 更新時(shí)間:2016年09月18日 16:36:25   作者:高山_流水  
這篇文章主要為大家詳細(xì)總結(jié)了常用的java日期比較和日期計(jì)算方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文為大家分享的都是常用的日期之間的比較方法,供以后參考。 

熱身:獲取當(dāng)前時(shí)間 

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式
String nowDate = df.format(new Date());// new Date()為獲取當(dāng)前系統(tǒng)時(shí)間
 

注:樓主一直以為date類型不如string類型隨心所欲,所以下面的比較都是string類型的date進(jìn)行比較。如果你真的真的就是那么倔強(qiáng),ok,下面是date轉(zhuǎn)string的方法: 

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式
String date = df.format(Date類型的時(shí)間);
 

1.兩個(gè)string類型的日期比較大小 

public static int compare_date(String DATE1, String DATE2) {
     DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     try {
       Date dt1 = df.parse(DATE1);
       Date dt2 = df.parse(DATE2);
       if (dt1.getTime() > dt2.getTime()) {
         System.out.println("dt1 在dt2前");
         return 1;
       } else if (dt1.getTime() < dt2.getTime()) {
         System.out.println("dt1在dt2后");
         return -1;
       } else {
         return 0;
       }
     } catch (Exception exception) {
       exception.printStackTrace();
     }
     return 0;
   }

2.返回兩個(gè)string類型日期之間相差的天數(shù) 

public static int daysBetween(String smdate,String bdate){ 
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
     Calendar cal = Calendar.getInstance();  
     long time1 = 0;
     long time2 = 0;
     
     try{
       cal.setTime(sdf.parse(smdate));  
       time1 = cal.getTimeInMillis();  
       cal.setTime(sdf.parse(bdate)); 
       time2 = cal.getTimeInMillis(); 
     }catch(Exception e){
       e.printStackTrace();
     }
     long between_days=(time2-time1)/(1000*3600*24); 
       
    return Integer.parseInt(String.valueOf(between_days));   
   }

3.返回兩個(gè)string類型日期相差的小時(shí)數(shù) 

public static int daysBetween2(String startTime, String endTime) {
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); 
     Calendar cal = Calendar.getInstance();  
     long time1 = 0;
     long time2 = 0;
     
     try{
        cal.setTime(sdf.parse(startTime));  
        time1 = cal.getTimeInMillis();  
        cal.setTime(sdf.parse(endTime)); 
        time2 = cal.getTimeInMillis(); 
     }catch(Exception e){
       e.printStackTrace();
     }
     long between_days=(time2-time1)/(1000*3600); 
       
     return Integer.parseInt(String.valueOf(between_days));   
   }

4.計(jì)算兩段日期的重合日期 

/**
   * 計(jì)算兩段日期的重合日期
   * @param str1 開(kāi)始日期1
   * @param str2 結(jié)束日期1
   * @param str3 開(kāi)始日期2
   * @param str4 結(jié)束日期2
   * @return
   * @throws Exception
   */
  public static Map<String,Object> comparisonRQ(String str1, String str2, String str3,
      String str4) throws Exception {
    String mesg = "";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    String startdate = "";
    String enddate = "";
    try {
      Date dt1 = df.parse(str1);
      Date dt2 = df.parse(str2);
      Date dt3 = df.parse(str3);
      Date dt4 = df.parse(str4);
      if (dt1.getTime()<=dt3.getTime()&&dt3.getTime()<=dt2.getTime()&&dt2.getTime()<=dt4.getTime()) {
        mesg = "f";//重合
        startdate = str3;
        enddate = str2;
      }
      if (dt1.getTime()>=dt3.getTime()&&dt3.getTime()<=dt2.getTime()&&dt2.getTime()<=dt4.getTime()) {
        mesg = "f";//重合
        startdate = str1;
        enddate = str2;
      }
      
      if (dt3.getTime()<=dt1.getTime()&&dt1.getTime()<=dt4.getTime()&&dt4.getTime()<=dt2.getTime()) {
        mesg = "f";//重合
        startdate = str1;
        enddate = str4;
      }
      if (dt3.getTime()>=dt1.getTime()&&dt1.getTime()<=dt4.getTime()&&dt4.getTime()<=dt2.getTime()) {
        mesg = "f";//重合
        startdate = str3;
        enddate = str4;
      }
      
      System.out.println(startdate+"----"+enddate);
      
      
    }catch (ParseException e) {
      e.printStackTrace();
      throw new ParseException(e.getMessage(), 0);
    }catch(Exception e){
      e.printStackTrace();
      throw new Exception(e);
    }
    Map<String,Object> map = new HashMap<String,Object>();
    map.put("startdate", startdate);
    map.put("enddate", enddate);
    return map;
  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • String.intern()作用與常量池關(guān)系示例解析

    String.intern()作用與常量池關(guān)系示例解析

    這篇文章主要為大家介紹了String.intern()作用與常量池關(guān)系示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • idea整合deepseek實(shí)現(xiàn)AI輔助編程的流程步驟

    idea整合deepseek實(shí)現(xiàn)AI輔助編程的流程步驟

    文章介紹了如何在IntelliJ IDEA中整合DeepSeek平臺(tái)實(shí)現(xiàn)AI輔助編程,步驟包括安裝CodeGPT插件、注冊(cè)DeepSeek開(kāi)發(fā)者賬號(hào)、配置API密鑰以及設(shè)置API信息,需要的朋友可以參考下
    2025-02-02
  • java實(shí)現(xiàn)客戶管理系統(tǒng)

    java實(shí)現(xiàn)客戶管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)客戶管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • redis實(shí)現(xiàn)隊(duì)列的阻塞、延時(shí)、發(fā)布和訂閱

    redis實(shí)現(xiàn)隊(duì)列的阻塞、延時(shí)、發(fā)布和訂閱

    本文主要介紹了redis實(shí)現(xiàn)隊(duì)列的阻塞、延時(shí)、發(fā)布和訂閱,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)

    Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Java多條件判斷場(chǎng)景中規(guī)則執(zhí)行器的設(shè)計(jì)

    Java多條件判斷場(chǎng)景中規(guī)則執(zhí)行器的設(shè)計(jì)

    近日在公司領(lǐng)到一個(gè)小需求,需要對(duì)之前已有的試用用戶申請(qǐng)規(guī)則進(jìn)行拓展。本文去掉if 判斷,試試用一個(gè)規(guī)則執(zhí)行器來(lái)替代它,感興趣的可以了解一下
    2021-06-06
  • Java中支持可變參數(shù)詳解

    Java中支持可變參數(shù)詳解

    那個(gè)可變參數(shù)的就是個(gè)數(shù)組,你傳多少個(gè)參數(shù)都被放到那個(gè)數(shù)組里面。這樣方便了程序員,因?yàn)槿绻淮_定要傳的參數(shù)的個(gè)數(shù)的話,我們要寫(xiě)帶1個(gè)參數(shù)的,帶2個(gè)參數(shù),帶3個(gè)參數(shù)的,這樣很麻煩。 該進(jìn)后的這個(gè)方法,我們只要寫(xiě)一個(gè)函數(shù)就好,可以傳任意個(gè)參數(shù)。
    2015-05-05
  • Idea springboot如何實(shí)現(xiàn)批量啟動(dòng)微服務(wù)

    Idea springboot如何實(shí)現(xiàn)批量啟動(dòng)微服務(wù)

    這篇文章主要介紹了Idea springboot如何實(shí)現(xiàn)批量啟動(dòng)微服務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java線程安全基礎(chǔ)概念解析

    Java線程安全基礎(chǔ)概念解析

    這篇文章主要介紹了Java線程安全基礎(chǔ)概念解析,希望給大家一個(gè)參考,需要的朋友可以了解下。
    2017-09-09
  • Josephus環(huán)的四種解法(約瑟夫環(huán))基于java詳解

    Josephus環(huán)的四種解法(約瑟夫環(huán))基于java詳解

    這篇文章主要介紹了Josephus環(huán)的四種解法(約瑟夫環(huán))基于java詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論

资中县| 巢湖市| 宁陵县| 镇康县| 安多县| 个旧市| 正阳县| 汝州市| 黄石市| 临澧县| 宝丰县| 临朐县| 榆社县| 临桂县| 铜陵市| 泽普县| 巫溪县| 南通市| 盘山县| 东乡族自治县| 酉阳| 吉隆县| 涟水县| 舟山市| 益阳市| 普兰店市| 碌曲县| 滨州市| 扶绥县| 伽师县| 鹿泉市| 正阳县| 浏阳市| 天门市| 深水埗区| 荥经县| 周至县| 呼图壁县| 金华市| 福清市| 嘉峪关市|