1. 程式人生 > >JAVA —— 比較日期時間大小

JAVA —— 比較日期時間大小

使用場景:根據日期查詢記錄(如日誌類表)時,為避免日期時間超出範圍或超出當前最新時間出現報錯,需要通過比較日期時間來做條件判斷

一、比較 年 月 日

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        // 比較 年 月 日
        SimpleDateFormat sdf  =new SimpleDateFormat("yyyy-MM-dd"); //建立日期轉換物件:年 月 日
        String date = "2018-11-11"; //假設 設定日期是  2018-11-11		
        Date today = new Date();    //今天 實際日期是  2018-11-12    Debug:Wed Nov 12 12:08:12 CST 2018
        try {         
            Date dateD = sdf.parse(date); //將字串轉換為 date 型別  Debug:Sun Nov 11 00:00:00 CST 2018
            boolean flag = dateD.getTime() >= today.getTime();
            System.err.println("flag = "+flag);  // flag = false
        } catch (ParseException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } 
    }
}

二、比較 時 分 秒

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        // 比較 時 分 秒
        DateFormat df = new SimpleDateFormat("HH:mm:ss"); //建立時間轉換物件:時 分 秒
        try {  
            Date date1 = df.parse("11:11:11"); //轉換為 date 型別 Debug:Thu Jan 01 11:11:11 CST 1970
            Date date2 = df.parse("12:12:12"); // 		 Debug:Thu Jan 01 12:12:12 CST 1970 
            boolean flag = date1.getTime() >= date2.getTime();
	    System.out.println("flag = "+flag);  // flag = false
        } catch (ParseException e) {  
            // TODO Auto-generated catch block
            e.printStackTrace();  
        }
    }
}

三、比較 年 月 日 時 分 秒

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) {  	
    	// 比較 年 月 日
	SimpleDateFormat sdf  =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//建立日期轉換物件:年月日 時分秒
	String date = "2018-11-11 11:11:11"; //假設 設定日期是 2018-11-11 11:11:11
	Date today = new Date(); 	     //今天 實際日期是  Debug:Wed Nov 12 12:00:18 CST 2018
	try {
	    Date dateD = sdf.parse(date);    //轉換為 date 型別 Debug:Sun Nov 11 11:11:11 CST 2018
	    boolean flag = dateD.getTime() >= today.getTime();
	    System.err.println("flag = "+flag);  // flag = false
	} catch (ParseException e1) {
	    // TODO Auto-generated catch block
	    e1.printStackTrace();
	} 		
    }
}