字符串参数与返回日期字符串类型格式化"/>
springboot接收日期字符串参数与返回日期字符串类型格式化
接口请求接收日期字符串
方式一 全局注册自定义Formatter
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addFormatters(FormatterRegistry registry) {registry.addFormatter(new Formatter<Date>() {@Overridepublic Date parse(String date, Locale locale) {return new Date(Long.parseLong(date));}@Overridepublic String print(Date date, Locale locale) {return Long.valueOf(date.getTime()).toString();}});}
}
方式二 在接口参数使用@DateTimeFormat注解
// 在参数上加入该注解
@GetMapping("/testDate")
public void test(@DateTimeFormat(pattern = "yyyy-MM-dd")Date date){
}
方式三 参数映射实体类属性上加@DateTimeFormat注解
@Data
public class User{private String name;@DateTimeFormat(pattern = "yyyy-MM-dd")private Date birthday;
}
// 在接收类字段加入该注解
@PostMapping("/testDate")
public void addUser(@RequestBody User user){
}
接口请求返回日期字符串格式化
方式一 全局注册消息转化器
@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {//调用父类的配置super.configureMessageConverters(converters);//创建fastJson消息转换器FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();//创建配置类FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig .setDateFormat("yyyy-MM-dd HH:mm:ss");//保留空的字段fastJsonConfig .setSerializerFeatures(SerializerFeature.WriteMapNullValue);// 按需配置,更多参考FastJson文档fastConverter .setFastJsonConfig(config);fastConverter .setDefaultCharset(Charset.forName("UTF-8"));converters.add(fastConverter );}
}
方式二 返回映射实体类属性上加@JsonFormat注解
@Data
public class User{private String name;@JsonFormat(pattern="yyyy/MM/dd HH:mm:ss",timezone = "GMT+8")private Date birthday;
}
方式三 配置文件配置
spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone=GMT+8
更多推荐
springboot接收日期字符串参数与返回日期字符串类型格式化
发布评论