JAVA —— 比較日期時間大小
阿新 • • 發佈:2018-11-12
使用場景:根據日期查詢記錄(如日誌類表)時,為避免日期時間超出範圍或超出當前最新時間出現報錯,需要通過比較日期時間來做條件判斷。
一、比較 年 月 日
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(); } } }