java中使用方法:
LocalDateTime.ofInstant(effective, ZoneId.systemDefault()).toLocalDate().plusYears(lifeTime);
- effective: 表示日期字段
- .plusYears()方法表示累加年,lifeTime:表示累加的值,下图可以看到还有很多的方法:月、日、周…
- 日期字段相比可以使用 .isBefore()方法,判断某一日期是否在另一日期之前。如下工具类:
package com.mycompany.myapp.web.rest.utils;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
public class DateCompareUtil {
public static boolean dateCompareTo(Instant effective, Integer lifeTime){
LocalDate startTime = LocalDateTime.ofInstant(effective, ZoneId.systemDefault()).toLocalDate().plusYears(lifeTime);
LocalDate endTime = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()).toLocalDate();
return startTime.isBefore(endTime);
}
}
Mysql中使用:
加:date_add(param1 interval num param2)
减:date_sub(param1 interval num param2)
param1:表示操作的日期字段
param2:表示操作单位:年、月、日
num: 表示增值、减值的常量
系统当前时间往后推1个月:
运行效果:
系统当前时间往前推1个月:
运行效果:
通常使用都是做流失预警:对某一日期字段进行累加,算出有效期,拿来和系统时间对比,在到期的前X周进行预流失提示。
下图表示,查询一个月后设备寿命到期的所有设备信息。