欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在spring Boot中如何设置spring MVC的时间格式

程序员文章站 2022-07-09 19:14:04
目录为什么要设置spring MVC的时间格式?spring mvc如何设置时间的格式的?spring mvc和spring整合后设置时间格式的简单方式如果通过spring Boot开发还可以这样做【扩展】注解@DateTimeFormat和@JsonFormat为什么要设置spring MVC的时间格式?springMVC默认时间格式是“/”,如果前端传过来的时间格式不符合的话,就会出400异常,这个时候就需要同一格式。统一的方法有两种:1.设置前端的时间格式2.就是设置spring MVC的...



为什么要设置spring MVC的时间格式?

在spring Boot中如何设置spring MVC的时间格式

springMVC默认时间格式是“/”,如果前端传过来的时间格式不符合的话,就会出400异常,这个时候就需要同一格式。统一的方法有两种:

  • 1.设置前端的时间格式
  • 2.就是设置spring MVC的默认时间格式

spring mvc如何设置时间的格式的?

~ 例如:

  • 请求:localhost/day16-springmvc/testParam4?date=2020-2-8 15:13:41
    在spring Boot中如何设置spring MVC的时间格式

    获取请求中的date参数的值

    • 日期类型的参数绑定
      浏览器请求:/testParam4?date=2020-3-3 15:36:08
    • 获取请求中的date参数的值
      HTTP Status 400 – Bad Request: 请求参数类型不匹配
      因为springmvc框架底层默认的时间格式是以斜杠(/)分隔,
      ~ 例如:
      /testParam4?date=2020/3/3 15:36:08
      因此,
      解决方式一:将浏览器发送的日期格式改为斜杠分隔
      解决方式二:将springmvc框架底层默认以斜杠分隔时间改为用横杠分隔
      注意改为横杠分隔后,斜杠分隔的时间在服务器端将无法接收

    @RequestMapping("/testParam4")
    public String testParam4( Date date ) {
    System.out.println( “date=”+date );
    return “home”;
    }
    自定义日期转换格式:将springmvc框架底层默认以斜杠分隔时间改为用横杠分隔
    @InitBinder
    public void InitBinder (ServletRequestDataBinder binder){
    binder.registerCustomEditor(java.util.Date.class,
    new CustomDateEditor(
    new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”), true)
    );
    }

spring mvc和spring整合后设置时间格式的简单方式

整合以后,可以通过注解开发,大大简化了我们的代码,现在我们只需要在pojo类里添加@DateTimeFormat即可

这里解释一下:

@DateTimeFormat(pattern=“yyyy-MM-dd”,timezone = “GMT+8”)

pattern:是你需要转换的时间日期的格式

timezone:是时间设置为东八区,避免时间在转换中有误差

提示:@DateTimeFormat注解可以在属性的上方,同样可以在属性对应的get方法上,两种方式没有区别

3.完成上面两步之后,我们用对应的实体类来前端传过来的值时就完成了时间格式的转换,再提交给数据库时就是一个符合我们设置的时间格式了

如果通过spring Boot开发还可以这样做

  • 可以在apllication.property加入下面配置就可以

#时间戳统一转换
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

  • 如果是apllication.yml加入下面配置

#时间戳统一转换
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8

【扩展】注解@DateTimeFormat和@JsonFormat

注解@JsonFormat与@DateTimeFormat类似,主要负责将数据库中的时间以给定形式呈现到前端

本文地址:https://blog.csdn.net/WST_T/article/details/108034351