SpringBoot--定义全局日期响应格式

背景:

今天遇到群友问如何定义全局日期响应格式,于是乎看了各种帖子,最后根据实际试验,总结出如下方法:

方法一(最方便):

#在application.properties文件中配置
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

        定义,全局响应的日期格式后,如果希望单独更改某个VO的日期格式,可以使用注解 @JsonFormat(pattern = "yyyy")
或者@DateTimeFormat(pattern = "yyyy-MM-dd")。

       另外,如果配置全局日期格式后,如果希望更改响应字段的名字,不能使用fastJSON的@JSONField注解,原因可以参考 https://blog.csdn.net/u011410529/article/details/67633835 。可以使用@JsonProperty("Date")将字段date改为首字母大写的Date。

public class UserInfo implements Serializable {


    private static final long serialVersionUID = -1L;

    // @JsonFormat(pattern = "yyyy")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date date;



    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}

方法二(消息转换器):

package com.froad.util;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.text.SimpleDateFormat;

/**
 * FileName: Json2MessageConventerConfig
 * DESCRIPTION: 设置全局响应日期格式
 *
 * @author: SLY
 * @create: 2019/4/1
 */
@Configuration
public class Json2MessageConventerConfig {

    @Bean
    public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        ObjectMapper objectMapper = new ObjectMapper();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
        objectMapper.setDateFormat(sdf);
        converter.setObjectMapper(objectMapper);
        return converter;
    }

}

如果希望单独更改某个VO的日期格式,同样可以使用方法一中的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值