-
前言
从数据库获取时间传到前端进行展示的时候,数据库中可能是正确的时间格式,但是如果显示到前端,却变成了一串时间戳。后端传入到前端可能需要某个格式,比如常见的yyyy-MM-dd 或者 yyyy-MM-dd HH:mm:ss,我们经常使用的注解有@JsonFormat 和@JSONField。@JsonFormat每次使用都需要定义好具体的格式(pattern),比如:@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createdDate;
,@JsonField也是一样,实话实话,很麻烦,所以打算自己自定义一个@DateFormatter。 -
具体实现过程
首先我们需要定义一个注解@DateFormatter。@Target中注明可以写在方法上以及属性上。
import java.lang.annotation.*;
@Target({
ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DateFormatter {
String pattern() default "yyyy-MM-dd HH:mm:ss";
}
定义一个DateSerializer Class
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.apache.commons