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

@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

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值