2020-06-25T23:59:59.52+08:00和2020-06-25T23:59:59+08:00可以共用SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSXXX")吗?
时间: 2024-03-26 09:35:56 浏览: 150
eere-exchange-microformats:将微格式添加到 https
对于时间字符串 "2020-06-25T23:59:59.52+08:00" 和 "2020-06-25T23:59:59+08:00",可以使用相同的 SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSXXX") 进行格式化,但是对于解析时,需要根据时间字符串中毫秒部分的有无来选择 SimpleDateFormat。
如果时间字符串中包含毫秒部分,可以使用 "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" 的格式进行解析:
```
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
Date date = dateFormat.parse("2020-06-25T23:59:59.52+08:00");
```
否则,可以使用 "yyyy-MM-dd'T'HH:mm:ssXXX" 的格式进行解析:
```
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
Date date = dateFormat.parse("2020-06-25T23:59:59+08:00");
```
因为 SimpleDateFormat 是线程不安全的,建议在多线程环境中使用 ThreadLocal 来保证线程安全性。
阅读全文