java中将ISO8601格式转换为Date类型

在对接第三方硬件时候,对方提供的数据里面,时间格式是ISO8601格式,
在这里插入图片描述
在数据库里面是Date类型的,这样保存会报错
java.time.format.DateTimeParseException: Text…

解决方法如下:

String format = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date start = sdf.parse(datamap.get("startTime").toString());

datamap是一个map集合,从中取出key为startTime的ISO8601格式对象,并将其转化为字符串,这样得到的start就可以存入数据库
在这里插入图片描述
需要注意的是,ISO8601格式好像不是固定的,如下:
如果是2013-10-24T11:39:00.000+08:00
格式化的时候String format后面应该是yyyy-MM-dd'T'HH:mm:ss.SSSXXX"

如果是2013-10-24T11:39:00.000+0800
格式化的时候String format后面应该是yyyy-MM-dd'T'HH:mm:ss.SSSZ

猜你喜欢

转载自blog.csdn.net/weixin_42260782/article/details/110200108