2026年物业门控五金耗材推荐榜:中企创联工业品,小区/写字楼/物业多场景门控配件全覆盖
2026/3/1 13:31:04
从错误堆栈中可以看到:
java.lang.UnsupportedOperationException: null at java.sql.Date.toInstant(Date. java:304) at com.hlig.service.sm.impl. PushServiceImpl. lambda$getWorkAnniversaryMsg$18 (PushServiceImpl.java:770)真正的问题 : java.sql.Date.toInstant() 方法是不支持的,会抛出 UnsupportedOperationException 异常。 employee.getInbusdat() 返回的是一个 java.sql.Date 对象,而不是 java.util.Date 对象。
我修改了 DateUtils.calculateAnniversary 方法,使用 Calendar 类来计算周年数,避免使用 toInstant() 方法:
// 修复前:使用toInstant()方法(java.sql. Date不支持) LocalDate entry = entryDate.toInstant(). atZone(ZoneId.systemDefault()).toLocalDate (); LocalDate current = currentDate.toInstant ().atZone(ZoneId.systemDefault()). toLocalDate(); // 修复后:使用Calendar类 Calendar entryCal = Calendar.getInstance (); entryCal.setTime(entryDate); Calendar currentCal = Calendar.getInstance (); currentCal.setTime(currentDate);