通常我们接受到一个Map集合需要判断其中的时间是否过期会怎么操作呢?
下面将给出两种方法:
第一种:直接根据Date中自带的before()方法进行处理,源码如下:
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date olderDate = sdf.parse("2008-07-10 19:20:00");
Date nowDate = new Date();
Map<String, Object> map = new HashMap<>();
map.put("finishDate", olderDate);//将时间放入Map集合中(你也可以多放几组,关系不大)
String ddd = String.valueOf(map.get("finishDate"));//根据key值将你所需要对比的时间取出
if (nowDate.before(new Date(ddd))) {
System.out.println("没有过期");
} else {
System.out.println("已过期");
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
结果如下:
第二种方法通过时间戳进行处理,需要将时间转换为时间戳
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date olderDate = sdf.parse("2025-05-10 19:20:00");
Date nowDate = new Date();
Map<String, Object> map = new HashMap<>();
map.put("finishDate", olderDate);
String ddd = String.valueOf(map.get("finishDate"));
long friendTime = new Date(ddd).getTime();//取出的时间戳
long currentTime = nowDate.getTime();//当前时间戳
if (friendTime > currentTime) {
System.out.println("没有过期");
} else {
System.out.println("已过期");
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
运行结果如下: