常常项目里转时间类型出现如下错误。

Can not deserialize value of type java.util.Date from String \"2021-10-24 12:12:12\"
: not a valid representation(error: Failed to parse Date value '2018-10-24 12:12:12': Can not parse date\"2021-10-24 12:12:12Z\": while it seems tofit format 'yyyy-MM-dd'T'HH:mm:ss.SSS'Z'', parsing fails (leniency? null))\n ...

其实,在我们springboot项目里对于传入传出参数中的时间类型格式化有很多方法,有一种比较简单的:

这种方式是最简单配置的,但是也限制了所有的接口,必须按照配置好的格式传入传出时间类型。当然,也有办法解决前端传入参数不匹配的问题,后边会说。

1、最简单的配置如下:

找到application.properties 文件,在其中加入下面这两行

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

其中,yyyy-MM-dd HH:mm:ss 可以写为yyyy-MM-dd hh:mm:ss 。如果这种格式,表示传入传出参数必须要带有时分秒。如下的传入参数:

{"countmj": "string","creatdate": "2021-10-24 12:12:12"
}
controller中的写法:
@RestController
@RequestMapping("/test")
public class Test1Controller extends BaseController{@RequestMapping(value="/postone",method = RequestMethod.POST)public Object getTest1(@RequestBody CqjyZcfxx zcfxx){if(zcfxx == null){return addResultMapMsg(false,"参数为空");}System.out.println(zcfxx.getCreatdate());return addResultMapMsg(true,zcfxx);}
}

其中接口部分post 请求的还可以如下写法:

    @PostMapping("/posttwo")public Object getTest2(@RequestBody CqjyZcfxx zcfxx){if(zcfxx == null){return addResultMapMsg(false,"参数为空");}zcfxx.setCreatdate(new Date());return addResultMapMsg(true,zcfxx);}

另外get 请求的写法如下:

    @GetMapping("/gettwo")public Object getTest2(CqjyZcfxx zcfxx){if(zcfxx == null){return addResultMapMsg(false,"参数为空");}zcfxx.setCreatdate(new Date());return addResultMapMsg(true,zcfxx);}

但是,千万别如下这种写法,get 请求不支持@RequestBody 的。

    @GetMapping("/getone")public Object getTest1(@RequestBody CqjyZcfxx zcfxx){if(zcfxx == null){return addResultMapMsg(false,"参数为空");}System.out.println(zcfxx.getCreatdate());return addResultMapMsg(true,zcfxx);}

传入参数不匹配的问题

??当然我们可能还有这样的问题,不同的前端人员,可能用不同的格式对你的小date传入,比如是时间戳丢给你,date表达式丢给你,明明你是年月日时分秒,他非要给你个年月日,等等。那改怎么办呢?
?? 如果出现了这种情况,也好办,只不过需要变一下接收办法即可。方法有两种:

1、ObjectMapper 类接收json的方式

ObjectMapper 这个不需要引包,只需要在controller 里这么写:

    @RequestMapping(value="/add",method = RequestMethod.POST)public Object addUser(@RequestBody String req){ObjectMapper jsonTranster = new ObjectMapper().setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"));CqjyXmtp cqjyXmtp = null;try{cqjyXmtp = jsonTranster.readValue(req, CqjyXmtp.class);}catch (Exception e) {e.printStackTrace();return false;}
2、Gson 类接收json的方式

还有一种,是以Gson 的方式转json串,这个需要引入包,我引的是下边的依赖:

   <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.0</version></dependency>

写法差不多:

  @RequestMapping(value="/add",method = RequestMethod.POST)public Object addUser(@RequestBody String req){Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd hh:mm:ss").create();CqjyXmtp cqjyXmtp = null;try{cqjyXmtp = gson.fromJson(req,CqjyXmtp .class);}catch (Exception e) {e.printStackTrace();return false;}

如果没什么特殊要求,我觉得,用第一种最好!

springboot项目中关于时间类型转换的格式问题相关推荐

  1. 使用IDEA在SpringBoot项目中连接数据库

    使用IDEA在SpringBoot项目中连接数据库 文章目录 使用IDEA在SpringBoot项目中连接数据库 前言 连接数据库 正常操作数据库 移除数据库连接 前言 每次我在 IDEA 中用 Sp ...

  2. springboot项目中使用shiro 自定义过滤器和token的方式___shiro使用token登录流程

    springboot项目中使用shiro 自定义过滤器和token的方式 实现步骤主要是以下几步: 1. 在项目中导入maven依赖 <dependency><groupId> ...

  3. 基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率

    基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率 1.拉取logstash,kibana,es,mysql镜像 #命令 ...

  4. Springboot项目中使用Kafka

    Springboot项目中使用Kafka 第一步:安装好Kafka服务器 具体可参考: https://blog.csdn.net/weixin_40990818/article/details/10 ...

  5. oracle和mybatis自增,在Springboot项目中使用MybatisPlus和Oracle实现主键ID的自增

    在Springboot项目中使用MybatisPlus和Oracle实现主键ID的自增 发布时间:2020-11-18 15:49:35 来源:亿速云 阅读:125 作者:Leah 在Springbo ...

  6. SpringBoot项目中集成第三方登录功能

    SpringBoot项目中集成第三方登录功能 引言 1 环境准备 2 代码实现 3 第三方平台认证申请 4 打包和部署项目 5 第三方平台登录认证测试 6 参考文章 引言 最近想把自己在公众号上介绍过 ...

  7. java 定时任务怎么关闭_浅谈springboot项目中定时任务如何优雅退出

    在一个springboot项目中需要跑定时任务处理批数据时,突然有个Kill命令或者一个Ctrl+C的命令,此时我们需要当批数据处理完毕后才允许定时任务关闭,也就是当定时任务结束时才允许Kill命令生 ...

  8. SpringBoot 项目中集成 Prometheus 和 Grafana

    项目上线后,除了能保障正常运行以外,也需要服务运行的各个指标进行监控,例如 服务器CPU.内存使用占比,Full GC 执行时间等,针对一些指标出现异常,可以加入一些报警机制能及时反馈给开发运维.这样 ...

  9. 亲测简单易懂可用:阿里云OSS入门实战2(集成到SpringBoot项目中存放用户头像)

    亲测简单易懂可用:阿里云OSS入门实战2(集成到SpringBoot项目中存放用户头像) 大噶好,我们继续延续上一章,学习如何使用OSS存放用户头像代码示例; 在application.propert ...

最新文章

  1. 原始数据极速上传NCBI SRA教程
  2. GPT-3距离下一代AI生态平台还有多远?
  3. wireshark使用_第一次使用WireShark的问题
  4. python中popen转变时区_python中的subprocess.Popen()使用
  5. GPU Gems2 - 6 用多流来优化资源管理(Optimizing Resource Management with Multistreaming)
  6. 深入了解区块链技术及其常见误区
  7. SpringBoot中使用Hibernate Validator校验工具类
  8. php 辗转相除法,手撸golang 基本数据结构与算法 最大公约数 欧几里得算法/辗转相除法...
  9. 串口485接法图_rs485接口接线方法
  10. Win10系统安装软件为了对电脑进行保护,已经阻止此应用解决方法
  11. 百度 UNIT 使用
  12. 弹窗拦截小帮手------火绒
  13. nginx上传文件大小限制
  14. Waves 10 win10 如何卸载干净 / 安装 / 如何处理waves mixer application installation failed / 改变默认安装路径
  15. 1650显卡学计算机,1650ti显卡属于什么档次?
  16. 用Java给图片添加文字水印
  17. 范登堡(van den berg)CPT使用记录
  18. Android Support库百分比布局
  19. Altium Designer 20设置铜皮到板框的距离(设置内缩)
  20. towhee+elasticsearch实现本地以图搜图

热门文章

  1. 解析json数据_Retrofit同时解析JSON和XML数据格式
  2. 字符串矩阵转换成长字符串_字符串矩阵
  3. 对象过滤某个属性 循环 php_37道PHP面试题(附答案)
  4. 相同布局在不同手机上显示不同_不懂响应式,不同尺寸屏幕下的页面很难达到最佳效果...
  5. 焦作的计算机三级考试考点,3月河南计算机等级考试考点分布情况
  6. 2018php项目实战视频教程,2018PHP实战技术VIP在线学习视频课程
  7. ai怎么约束每个字的大小_人工智能的约束满意问题
  8. Java 200+ 面试题补充② Netty 模块
  9. 服务器经常崩溃??让我们来看看简单的内存知识:C语言——内存管理
  10. python爬虫lxml xpath测试