<>@JsonFormat将时间字符串2021-02-25T15:32:54+08:00解析成date

由于对接硬件,硬件返回的json字符串中,其中有时间字段的字符串为2021-02-25T15:32:54+08:00,UTC(世界协调时间格式),然后疯狂百度,看看如何将utc格式的时间转换成DATE,然后看到网上的各位大佬们大都使用以下几种方式
DateTime
dt1=DateTime.ParseExact("2013-11-17T11:59:22+08:00","yyyy-MM-ddTHH:mm:sszzz",new
System.Globalization.CultureInfo("en-us")); DateFormat df = new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); //yyyy-MM-dd'T'HH:mm:ss.SSSZ
Date date = df.parse(oldDateStr);
但是由于我是使用的实体类作为json接收对象,不太想进行二次转换,然后想到是否可以偷个懒,直接使用fastjson的
@JsonFormat来进行时间格式化呢,说干就干由于之前解析都为正常的格式如下
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
于是就仿照着时间格式,不就是中间加了个T那我也加上
@JsonFormat(pattern = "yyyy-MM-ddTHH:mm:ss",timezone = "GMT+8")

加上了T之后解析果断不报错,心里一阵窃喜,然而输出时间作为验证的时候,直接解析异常,然后疯狂百度无果,但是不死心啊,明明可以解析了为啥输出会报错呢,突然灵机一动,参考博客园某老哥的文章发现new
SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SSSXXX”);
它的时间格式中T加上了一个单引号,说干就干,我也加上了单引号结果如下
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss",timezone = "GMT+8")
果断转换成功,有机智的偷了一次懒,开心
测试输出如下:
System.out.println(testDate.getCeshi());//结果:Thu Feb 25 15:32:54 CST 2021
System.out.println(testDate.getCeshi().getTime());//结果:1614238374000

技术
©2019-2020 Toolsou All rights reserved,
Vue.js入门(五)---在vue中使用echarts词云Pandas统计分析基础_数据处理(DataFrame常用操作)element UI dialog点击dialog区域外会关闭dialog应届毕业生看过来!Java面试经典77问,看完离工作就不远了关于蓝桥杯大赛,你应该了解的那些事!mysql 分区-key分区(五)海康威视-嵌入式软件笔试题PHP Redis 监听过期的 key 事件C语言循环语句笔记详解以及练习-折半查找算法、猜数字游戏JVM概述