在SpringBoot中配置日期格式化的方法详解

 更新时间:2023年10月20日 08:56:03   作者:深码青年  
通常情况下,发起一个 Http 请求,Spring Boot 会根据请求路径映射到指定 Controller 上的某个方法的参数上,接着,Spring 会自动进行类型转换,对于日期类型的参数,Spring 默认是没有配置如何将字符串转换成日期类型的,本文将给大家介绍在SpringBoot中配置日期格式化的方法

我们先了解下,为什么需要配置日期格式化?

通常情况下,发起一个 Http 请求,Spring Boot 会根据请求路径映射到指定 Controller 上的某个方法的参数上,接着,Spring 会自动进行类型转换

对于日期类型的参数,Spring 默认是没有配置如何将字符串转换成日期类型的

未配置日期格式化会如何?

我们新建一个 Web 项目,并定义一个接口:

package site.exception.springbootdateformat.controller;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import site.exception.springbootdateformat.entity.User;

/**
 * @time 21:03
 * @discription
 **/
@RestController
public class UserController {

    /**
     * 定义一个创建用户的接口
     * @param user
     * @return
     */
    @PostMapping("/user")
    public String createUser(User user) {
        // 打印创建时间
        System.out.println(user.getCreateTime().toString());
        return "Create user success !";
    }
}

User.java:

package site.exception.springbootdateformat.entity;

import java.io.Serializable;
import java.util.Date;

/**
 * @time 21:00
 * @discription
 **/
public class User implements Serializable {
    /**
     * 用户名
     */
    private String username;
    /**
     * 密码
     */
    private String password;
    /**
     * 创建时间
     */
    private Date createTime;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

用 Postman 工具发起对该接口的表单请求,看看结果:

服务报错,无法将字符串类型转换成 java.util.Date 类型。

配置日期格式化

要让 Spring Boot 能够按照指定的格式进行日期类型转换,需要做以下步骤:

  • 定义一个 MvcConfig 类,让其实现 WebMvcConfigurer 接口;
  • 重写 addFormatters 方法;
  • 添加一个 DateFormatter;
package site.exception.springbootdateformat.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.format.datetime.DateFormatter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


/**
 * @author www.exception.site (exception 教程网)
 * @date 2019/2/16
 * @time 20:55
 * @discription
 **/
@Configuration
public class MvcConfig implements WebMvcConfigurer {

    /**
     * 配置日期格式化
     * @param registry
     */
    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addFormatter(new DateFormatter("yyyy-MM-dd HH:mm:ss"));
    }
}

接下来,再次以表单的形式访问 /user 接口,看看效果:

正确输出 Create user Success !  接口,并且控制台,也打印了 createTime 值,说明 Spring Boot 已经自动帮我们做了转换操作:

至此,如何在 Spring Boot 中配置全局的日期格式化就完成了!

注意:本节中的转换仅支持表单形式请求,不支持 application/json 的请求方式!

以上就是在SpringBoot中配置日期格式化的方法详解的详细内容,更多关于SpringBoot日期格式化的资料请关注脚本之家其它相关文章!

相关文章

  • java mybatis如何操作postgresql array数组类型

    java mybatis如何操作postgresql array数组类型

    这篇文章主要介绍了java mybatis如何操作postgresql array数组类型,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • selenium高效应对Web页面元素刷新的实例讲解

    selenium高效应对Web页面元素刷新的实例讲解

    今天小编就为大家分享一篇selenium高效应对Web页面元素刷新的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Java单例模式分析

    Java单例模式分析

    这篇文章主要给大家介绍了关于Java单例模式,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2021-09-09
  • Spring在多线程下@Resource注入为null的问题

    Spring在多线程下@Resource注入为null的问题

    这篇文章主要介绍了Spring在多线程下@Resource注入为null的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • java获取昨天日期字符串的方法

    java获取昨天日期字符串的方法

    这篇文章主要介绍了java获取昨天日期字符串的方法,涉及java针对日期与时间的运算与转换等相关操作技巧,需要的朋友可以参考下
    2016-08-08
  • Java Set集合及其子类HashSet与LinkedHashSet详解

    Java Set集合及其子类HashSet与LinkedHashSet详解

    这篇文章主要介绍了Java Set集合及其子类HashSet与LinkedHashSet详解,文章通过Set集合存储原理展开文章主题相关介绍,感兴趣的小伙伴可以参考一下
    2022-06-06
  • Java并发之BlockingQueue的使用

    Java并发之BlockingQueue的使用

    这篇文章主要介绍了Java并发之BlockingQueue的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • selenium-java实现自动登录跳转页面方式

    selenium-java实现自动登录跳转页面方式

    利用Selenium和Java语言可以编写一个脚本自动刷新网页,首先,需要确保Google浏览器和Chrome-Driver驱动的版本一致,通过指定网站下载对应版本的浏览器和驱动,在Maven项目中添加依赖,编写脚本实现网页的自动刷新,此方法适用于需要频繁刷新网页的场景,简化了操作,提高了效率
    2024-11-11
  • Android Home键监听的实现代码

    Android Home键监听的实现代码

    这篇文章主要介绍了Android Home 键监听的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Nacos配置文件使用经验及CAP原则详解

    Nacos配置文件使用经验及CAP原则详解

    这篇文章主要为大家介绍了Nacos配置文件使用经验及CAP规则详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02

最新评论