springboot接收日期字符串参数与返回日期字符串类型格式化

接口请求接收日期字符串
方式一 全局注册自定义Formatter

@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();
            }
        });
    }
}

方式二 在接口参数使用@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 {
 	@Override
	public 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:ss
        time-zone=GMT+8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值