前言:除了标题的问题,Redis在存储LocalDateTime的时候也会有相关的问题,解决方案其实也很简单,在相对应的实体类,对LocalDateTime类型加几条注解即可
解决方案
通过LocalDateTime的源码可以发现,问题出现的原因:
java
@Override
public String toString() {
return date.toString() + 'T' + time.toString();
}
这个问题可以前端处理,也可以后端处理,前端处理就是可以通过格式化的方式去掉T
而后端处理的方式,最简单就是加注解
java
/**
* 时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private LocalDateTime time;
- 如果这个时候,后台返回还有T的话,可能是引用了fastJson的api,需要加多一条注解,@JSONField
- 同样适用于Redis保存
- 所以最好用下面的这个
java
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.annotation.JSONField;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
目录