import java.text.*;
import java.util.*;
public class TimeCompare {
public static void main(String[] args) {
System.out.println(isDateBefore("2004-09-09 12:12:12", "2005-09-09 16:00:00")); // true
System.out.println(isDateBefore("2006-09-09 01:01:01", "2005-09-09 16:00:00")); // false
System.out.println(isDateBefore("2005-09-09 01:01:01")); // 視當前時間而定
}
// 判斷 date1 是否早於 date2
public static boolean isDateBefore(String date1, String date2) {
try {
DateFormat df = DateFormat.getDateTimeInstance();
return df.parse(date1).before(df.parse(date2));
} catch (ParseException e) {
System.err.println("[SYS] " + e.getMessage());
return false;
}
}
// 判斷當前時間是否早於 date2
public static boolean isDateBefore(String date2) {
try {
DateFormat df = DateFormat.getDateTimeInstance();
return new Date().before(df.parse(date2));
} catch (ParseException e) {
System.err.println("[SYS] " + e.getMessage());
return false;
}
}
}
DateFormat.getDateTimeInstance() 取得預設語系的日期時間格式化器Date.before(Date) 直接比較時間先後ParseException,回傳 false 並輸出錯誤訊息yyyy-MM-dd HH:mm:ss)生產環境建議使用 SimpleDateFormat 指定確切格式,或升級至 Java 8+ 的 java.time 套件(LocalDateTime、DateTimeFormatter)獲得更好的執行緒安全與效能。