자주 사용하는 자바 날짜 비교와 날짜 계산 방법 소결

5038 단어 java날짜
본고는 모두를 위해 자주 사용하는 날짜 간의 비교 방법으로 나중에 참고하도록 제공한다. 
워밍업: 현재 시간 얻기
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//날짜 형식 설정
String nowDate = df.format(new Date());//new Date()는 현재 시스템 시간을 가져옵니다.
주: 건물주는 줄곧date 유형이string 유형보다 마음대로 되지 않는다고 생각하기 때문에 아래의 비교는 모두string 유형의date를 비교한다.만약 당신이 정말 그렇게 고집이 세다면, ok, 다음은date 회전string의 방법입니다.
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//날짜 형식 설정
String date = df.format(Date 유형의 시간); 
1. 두 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. 두 string 형식의 날짜 사이의 차이를 되돌려주는 일수

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. 두 string 형식의 날짜 차이를 되돌려주는 시간

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. 두 단락의 날짜가 일치하는 날짜를 계산한다

/**
   *  
   * @param str1  1
   * @param str2  1
   * @param str3  2
   * @param str4  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;
  }
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기