国际标准ISO 8601,是国际标准化组织的日期和时间的表示方法,现在被许多厂家在其对外提供的api中涉及到时间的返回值或者参数值使用,主要是为了国际之间时间表示的通用型考虑,下面举个具体的例子讲述ISO 8601表示法的日期时间的格式化。
近期在调用一些大厂的接口时,返回了如下的日期格式:2022-11-11T17:18:13+08:00,这种写法表示的意思是东八区2022年11月11日17点18分13秒。其中T是连接日期和时间,+08:00表示时区,如果把该格式转换成2022-11-11 17:18:13要如何去做呢,千万不要通过字符串替换,除非你的产品永远活在固定的地方,其实方法很简单,就是使用formatter,代码如下:
publicstaticStringformatDateStrFromISO8601Timestamp(StringisodateTime){ try { DateTimeFormatterdtf1=DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); DateTimedt=dtf1.parseDateTime(ISOdate); DateTimeFormatterdtf2=DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); returndt.toString(dtf2); }catch (Exceptione){ try{ returndealDateFormat(ISOdate); }catch (Exceptione1) { return""; } } }