java注解使用1——java注解之时间格式化@DateTimeFormat和@JsonFormat对比和应用

3 篇文章 0 订阅
2 篇文章 0 订阅

在实际项目开发过程中,注解的使用可以减少大量重复性工作,且具有通用性,非常适合提高工作效率,但是不同时间格式化的注解在使用中还是要多注意。

一般情况下,在开发java接口的时候,基本都会用到@RequestParam和@RequestBody这两个最基本的注解,对应的请求类型意味着是get和post类型,因此时间格式化的注解是基于这个方式来介绍和说明的。

1.@DateTimeFormat

此注解是将前端的时间参数传给对应后端的日期时间参数进行对应的格式化

1.1.VO或者实体类对应的注解参数写法:
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date staTime;

    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
1.2.Get请求接口写法:
@GetMapping("/monthDetailList")
    public TableDataInfo getMonthDetailList(CheckupInputInfo inputInfo)
    {
        List<ScrpReportCheckupInputInfo> list =             
              inputInfoService.getCheckupInputInfoList(inputInfo);
        return getDataTable(list);
    }

需要注意的点:

  • Get接口的请求参数可以是一个对象,Spring MVC会根据参数名称自动将参数绑定到对应的属性上
  • @GetMapping是一个组合注解,等同于 @RequestMapping(method = RequestMethod.GET)
1.3.最终结果如下:
  • 前段参数请求:

  • 后端自动映射转化:

2.@JsonFormat

此注解用于指定 Java 对象在序列化或反序列化转换成对应的JSON格式,也就是此注解不仅支持前段时间字符串传参给后台转成Date,还可以把后端的Date参数转成对应的时间字符串传递到前段

2.1.实体类对应的注解参数写法:
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date sumbitTime;
2.2.Post接口写法
    @PostMapping
    public AjaxResult add(@RequestBody CheckupInputInfo inputInfo)
    {
        return success(checkupInputInfoService.insertCheckupInputInfo(inputInfo));
    }

需要注意的点:

  • Post接口的请求参数必须是一个对象,Spring MVC会根据参数名称自动将参数绑定到对应的属性上
  • @PostMapping同样也是一个组合注解,等同于 @RequestMapping(method = RequestMethod.POST)
2.3.最终结果展示如下:
  • 前段参数请求实例:

  • 后端自动映射转化:

  • 查询自动转换返回前段的结果:

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@DateTimeFormat和@JsonFormat是两个常用于处理日期时间格式注解,可以一起使用来实现更灵活的日期时间处理。 @DateTimeFormat注解用于将字符串类型的日期时间转换为对应的 Java 类型,或者将 Java 类型的日期时间转换为字符串类型。它可以应用于字段、方法参数和方法返回值上。 @JsonFormat注解用于定义在序列和反序列过程中如何格式日期时间。它可以应用于字段、方法和类级别上。当应用在类级别上时,会对该类中的所有属性进行统一的日期时间格式。 当这两个注解一起使用时,可以实现以下效果: 1. 前端传入日期时间字符串时,@DateTimeFormat将其转换为对应的 Java 类型。 2. 后端传出数据时,@JsonFormatJava 类型的日期时间格式为指定的字符串格式。 3. 后端接收数据时,@DateTimeFormat将传入的字符串类型的日期时间转换为对应的 Java 类型。 4. 前端接收数据时,@JsonFormatJava 类型的日期时间格式为指定的字符串格式。 示例代码如下: ```java public class Example { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date datetime; // getter and setter } ``` 以上代码中,`datetime`字段使用了`@DateTimeFormat`和`@JsonFormat`注解,它们分别指定了日期时间的格式规则。这样,在前端传入日期时间字符串时,会自动转换为对应的 Java 类型,并在后端传出数据时以指定的格式进行格式。 希望能解答您的问题,如果还有其他问题,请继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值