正文
日期格式化问题分为接收日期参数和返回日期类型字段。
接收日期参数格式化
配置接收时间戳
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addFormatter(new Formatter<Date>() {
@Override
public Date parse(String date, Locale locale) {
return new Date(Long.parseLong(date));
}
@Override
public String print(Date date, Locale locale) {
return Long.valueOf(date.getTime()).toString();
}
});
}
}
接收日期字符串方法类似上面,此处略。
只针对方法配置接收日期字符串
// 方法1:在参数上加入该注解
public void test(@DateTimeFormat(pattern = "yyyy-MM-dd")Date date){
}
// 方法2:在接收类字段加入该注解
public void addUser(User user){
}
@Data
public class User{
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
}
返回日期类型字段
配置返回时间戳
spring
jackson:
serialization:
write-dates-as-timestamps: true
全局配置返回字符串
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone=GMT+
在指定字段加入注解@JsonSerialize(using = xxxx.class)或@JsonFormat(pattern="yyyy/MM/dd HH:mm:ss",timezone = "GMT+8")