前后台交互的Date类型入参和出参

今天来分享一个前后端分离项目经常遇到的Date类型传参和返回值的问题吧,其实在日常的开发中,我们在一般情况下用注解就可以解决大部分问题,在这就说说注解吧:

1、@JsonFormat(pattern="")出参格式化

格式自填,这个注解呢就是解决出参是date类型的问题,将查出的date字段转换为你想要的格式返回给前端,不加它,你返回的就可能是这样的:2018-08-01T14:25:31.296+0000,当然你也可以通过格式转换DateFormat类和SimpleDateFormat类然后新定义字段来实现,对比来说,前者在前后端交互的时候用到的较多,后者则是在后端自己的逻辑代码和数据库交互的时候使用的较频繁,本人当时还遇到一种意外情况,要求返回最近更新时间,但是我们的项目将修改时间之类的字段封装进了一个基础类进行继承,这样就没法直接加注解了,只能新定义一个字段,转换完给它赋值,然后再返给前端,实际情况实际处理哈

2、@DateTimeFormat(pattern="")入参格式化

格式自填,这个注解呢就是解决入参是date类型的问题,将前端传入的字段转换为你想要的date格式进行接收,不加它,如果前端传入的是"2022-01-04"之类的字符串,你接收的时候就会报错,无法解析参数;当然你也可以通过新定义字段用string接收,然后通过DateFormat类和SimpleDateFormat类格式转换来实现

其他的方法呢用起来都比较麻烦,感兴趣的小伙伴可以自行研究下,感谢支持!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
LocalDateTime在Java中是一个用于表示日期时间值的对象,并且它不包含时区信息。因此,在进行后端交互的时候,处理日期时间数据时需要特别注意时区的问题。 ### 后台处理: 后台通常需要将日期时间数据存储到数据库,或者通过API提供给端。由于数据库系统可能会保存时区特定的时间戳,而端应用则可能基于用户所在的时区显示日期时间。所以在向数据库发送日期时间数据之,应该将其转换成统一的时区。这通常是将所有数据转换为UTC(协调世界时)时间再进行存储。 ```java import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; public void saveDateTimeToDB(LocalDateTime localDateTime) { ZonedDateTime utcDateTime = localDateTime.atZone(ZoneId.of("UTC")); // 此处可以将utcDateTime转换为数据库支持的格式并存储 } ``` ### 端显示: 端在接收并展示来自后台的数据时,也需要考虑时区差异。为了给用户正确的体验,端应能够接受并解析不同时区的时间数据,并将其转换成用户所在时区的日期时间。 #### JavaScript示例: ```javascript function formatDateTime(dateTimeString) { const dateTime = new Date(dateTimeString); const userTimeZoneOffset = new Date().getTimezoneOffset() * -1; // 转换为分钟数 const offsetMillis = userTimeZoneOffset * 60 * 1000; return new Date(dateTime.getTime() + offsetMillis).toLocaleString(); } // 使用示例 const serverDateTime = "2023-10-04T15:30Z"; // UTC时间字符串,其中Z代表零时区 document.getElementById('display').innerHTML = formatDateTime(serverDateTime); ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默慊$

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值