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

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

在这里插入图片描述

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

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

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

~ 例如:

  • 请求:localhost/day16-springmvc/testParam4?date=2020-2-8 15:13:41
    在这里插入图片描述

    获取请求中的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类似,主要负责将数据库中的时间以给定形式呈现到前端

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值