springboot DTO字符字段与日期字段的转换问题

 更新时间:2020年07月17日 16:12:09   作者:张占岭  
这篇文章主要介绍了springboot DTO字符字段与日期字段的转换问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

不会自动转换string与date

主要是这个意思,前端提交的JSON里,日期是一个字符串,而对应后端的实体里,它是一个Date的日期,这两个在默认情况下是不能自动转换的,我们先看一下实体
实体

public class UserDTO {
 private String name;
 private String email;
 private Boolean sex;
 private Double total;
 private BigDecimal totalMoney;
 private Date birthday;
}

客户端提交的json对象

{
 "email": null,
 "name": "lr",
 "total":3,
 "totalMoney":1,
 "birthday":"1983-03-18"
}

服务端收到的实体DTO是正常的

而在服务端响应的结果却不是日期,而是一个时间戳

{
 "name": "lr",
 "email": null,
 "sex": null,
 "total": "3.00",
 "totalMoney": 0.0000,
 "birthday": 416793600000
}

我们看到日期型的birthday在响应到前端还是一个时间戳,如果我们希望响应到前端是一个日期,那需要为这个DTO实体添加JsonFormat注解

public class UserDTO {
 private String name;
 private String email;
 private Boolean sex;
 private Double total;
 private BigDecimal totalMoney;
  @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
 private Date birthday;
}

也可以通过配置文件进行设置

spring:
 jackson.date-format: yyyy-MM-dd
 jackson.time-zone: GMT+8
 jackson.serialization.write-dates-as-timestamps: false

这样,在服务端向前端响应结果就变成了

使用configureMessageConverters方法全局处理

springboot2.x可以实现WebMvcConfigurer 接口,然后重写configureMessageConverters来达到定制化日期序列化的格式:

Configuration
@EnableWebMvc //覆盖默认的配置
public class WebMvcConfigurerImpl implements WebMvcConfigurer {
 @Override
 public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
  ObjectMapper objectMapper = new ObjectMapper();

  // 时间格式化
  objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));//只能是一个日期格式化,多个会复盖
 }
}

如上图所示,如果希望为getup字段添加时分秒,需要在DTO上使用@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")注解即可。

总结

到此这篇关于springboot~DTO字符字段与日期字段的转换问题的文章就介绍到这了,更多相关springboot字符字段与日期字段转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot+MinIO实现文件上传、读取、下载、删除的使用示例

    SpringBoot+MinIO实现文件上传、读取、下载、删除的使用示例

    本文主要介绍了SpringBoot+MinIO实现文件上传、读取、下载、删除的使用示例,详细介绍每个功能实现的步骤和代码示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Java接口自动化测试框架设计之Get请求方法和测试详解

    Java接口自动化测试框架设计之Get请求方法和测试详解

    这篇文章主要介绍了Java接口自动化测试框架设计 Get请求方法和测试,框架设计我们只是介绍基本的组件,而且框架设计没有想象那么难,一步一步跟着做就会了。这篇我们来演示,如果通过Java代码来实现一个用纯代码实现Http中的Get请求过程,需要的朋友可以参考下
    2019-07-07
  • springboot中的静态资源加载顺序优先级

    springboot中的静态资源加载顺序优先级

    这篇文章主要介绍了springboot中的静态资源加载顺序优先级,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • spring Security的自定义用户认证过程详解

    spring Security的自定义用户认证过程详解

    这篇文章主要介绍了spring Security的自定义用户认证过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • java int类型二维数组实现“杨辉三角”的完整实例

    java int类型二维数组实现“杨辉三角”的完整实例

    这篇文章主要给大家介绍了关于java int类型二维数组实现“杨辉三角”的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 使用Java创建数据透视表并导出为PDF的方法

    使用Java创建数据透视表并导出为PDF的方法

    数据透视分析是一种强大的工具,可以帮助我们从大量数据中提取有用信息并进行深入分析,本文将介绍如何使用Java来构建PivotTable以及实现数据透视分析,并将其导出为PDF
    2023-10-10
  • 详解Spring Boot实战之Rest接口开发及数据库基本操作

    详解Spring Boot实战之Rest接口开发及数据库基本操作

    本篇文章主要介绍了Spring Boot实战之Rest接口开发及数据库基本操作,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • MyBatis实战之Mapper注解的示例

    MyBatis实战之Mapper注解的示例

    本文主要介绍了MyBatis实战之Mapper注解的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • java实现简单的学生信息管理系统代码实例

    java实现简单的学生信息管理系统代码实例

    这篇文章主要介绍了java实现简单的学生信息管理系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 详解Spring Cloud 跨服务数据聚合框架

    详解Spring Cloud 跨服务数据聚合框架

    这篇文章主要介绍了详解Spring Cloud 跨服务数据聚合框架,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03

最新评论