springboot中配置前后端日期格式转化

一、说在前面

springboot的自动注入中内嵌了格式转化器,如果不做配置按照系统的默认时间格式请求和响应数据。

形如:Wed Mar 20 10:32:29 CST 2024

也就是说如果请求响应的数据和这个格式一样,就能成功,就不会报404

内嵌格式转化器:

支持自定义格式转化器的注册:

二、前端到后端日期格式转换

方法一:配置文件方法(在application.yml配置文件中)

复制代码
spring:
  mvc:
    date-format: yyyy-MM-dd

方法二:在实体类中日期属性前加DateTimeFormat注解

复制代码
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date birth;

方法三:自定义配置文件实现WebMvcConfigurer接口,重新格式转化器

复制代码
@Override
public void addFormatters(FormatterRegistry registry) {
    registry.addFormatter(new Formatter<Date>() {
        @Override
        public String print(Date date, Locale locale) {
            return null;
        }
        @Override
        public Date parse(String s, Locale locale) throws ParseException {
            return new SimpleDateFormat("yyyy-MM-dd").parse(s);
        }
    });
}

三、后端到前端日期格式转换

方法一:消息转化器和fastjson结合

fastjson是阿里的开源包,用于对json格式数据的解析处理。

在Spring MVC中,消息转换器(MessageConverter)是用于处理请求和响应中的数据转换的组件。它负责将HTTP请求中的数据转换为Java对象,并将Java对象转换为HTTP响应数据。常见的消息转换器包括处理JSON、XML、Form表单等格式的转换器。

pom.xml中引入fastjson依赖

复制代码
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.47</version>
</dependency>

在自定义配置类中配置消息转化器

复制代码
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    FastJsonHttpMessageConverter fc = new FastJsonHttpMessageConverter();
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    fc.setFastJsonConfig(fastJsonConfig);
    converters.add(fc);
}

在实体类上加@jsonfield注解

复制代码
@JSONField(format = "yyyy-MM-dd")
private Date date;

四、一个注解请求响应双向日期格式转换

`@JSONFormat` 是Fastjson库中的注解,用于指定JSON序列化和反序列化时的格式化规则,如日期格式、数字格式等。这个注解可以用于类的字段上,以定制化JSON的格式化输出。

复制代码
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8"))
private Date birth;
//timezone用于指定是区,上面取值是东八区北京时间

注意在使用这个注解时请求的数据和响应的数据必须是json格式的。

相关推荐
csdn_aspnet5 分钟前
了解 ASP.NET Core 中的防伪技术
后端·asp.net·csrf·.net core
武子康8 分钟前
大数据-270 Spark MLib-机器学习库快速入门(分类/回归/聚类/推荐)
大数据·后端·spark
石榴树下的七彩鱼14 分钟前
OCR 识别接口哪个好?2026 年主流 OCR API 对比评测(附免费在线体验)
图像处理·人工智能·后端·计算机视觉·ocr·api·文字识别
devpotato15 分钟前
人工智能(九)- Spring AI MCP客户端开发
java·mcp
疯狂打码的少年23 分钟前
【Day14 Java转Python】从Java到Python——用Python重构一个Java小工具(文件批量重命名实战)
java·python·重构
无籽西瓜a28 分钟前
【西瓜带你学设计模式 | 第十八期 - 命令模式】命令模式 —— 请求封装与撤销实现、优缺点与适用场景
java·后端·设计模式·软件工程·命令模式
woniu_maggie29 分钟前
SAP CPI配置相关
后端
aXin_ya32 分钟前
微服务 第二天
java·数据库·微服务
浪客川33 分钟前
【百例RUST - 008】枚举
开发语言·后端·rust
李日灐35 分钟前
<3>Linux 基础指令:从时间、查找、文本过滤到 .zip/.tgz 压缩解压与常用热键
linux·运维·服务器·开发语言·后端·面试·指令