为什么会出现.0或者.000
数据库存储的数据是yyyy-MM-dd HH:mm:ss格式,最后返回给前端却多了.0或者.000,这个是把纳秒.S给返回出来了。
解决方式有以下几种
1:如果实体类的时间字段是Date类型,可以在实体类字段上加上注解
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date time;
2:如果实体类的时间字段是String类型,可以写一个转换类,指定转换字段的关系,类似于BeanUtils工具类的克隆
@Mapper(componentModel = "spring")
public interface DtoConverter {
@Mappings({
@Mapping(target = "time", source = " time", qualifiedByName = "formatTime")
})
DtoResponse convertPoResp(Dto dto);
@Named("formatTime")
default String formatTime(String time) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss[.S]");
LocalDateTime dateTime = LocalDateTime.parse(time, formatter);
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return dateTime.format(timeFormatter);
}
}
3:也可以自己写SQL语句,在Mapper.xml文件夹里,指定时间类型的数据返回类型
比如下面的SQL
select id, DATE_FORMAT(time,'%Y-%m-%d %H:%i:%s') time
from dto