项目中遇到一个需要加入时间校验的模块,这里将它单独拿出来写一个通用方法,方便其他模块用的时候直接调用
这里先获得当前时间,并转换成所需要的格式
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowDate = sdf.format(date);//当前时间
再拿到过期时间
String checkDate = "2022-01-22 10:10:10";//过期时间
写一个时间校验的方法
这里用到了DateTimeFormatter类,格式化字符串的方式与SimpleDateFormat完全一致,只不过DateTimeFormatter是线程安全的。
而LocalDateTime 是JDK8新特性里的一个时间类,是不可变且线程安全的。
Boolean checkTime(String nowDate,String checkDate){
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime nowTime = LocalDateTime.parse(nowDate, df);//当前时间
LocalDateTime checkTime = LocalDateTime.parse(checkDate, df);//过期时间
return checkTime.isBefore(nowTime);//返回比较的结果
}
然后来看看输出结果
System.out.println(nowDate);
System.out.println(timeCheck.checkTime(nowDate,checkDate));
2022-01-25 14:49:09
true
因为checkTime早于nowTime,所以返回true,过期。