這是一種常見的第三方接口返回的日期格式拆吆,因為有別于我們常用的"yyyy-MM-dd HH:mm:ss"格式,所以我們首先要把這種字符串解析為Date,再轉(zhuǎn)為需要的格式脂矫。
類似日期2021-11-12T10:27:06+08:00 的 格式為:yyyy-MM-dd’T’HH:mm:ssXXX
其中:
T是不需要解析的無意義字符枣耀,需要用單引號包起來
+08:00是時區(qū),對應(yīng)為"XXX"
- 老式Java API解析
String a = "2021-11-12T10:27:06+08:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date1 = sdf.parse(a);
String dateString = sdf2.format(date1);
System.out.println("date: "+dateString);
} catch (ParseException e) {
e.printStackTrace();
}
- JAVA8解析
這是一種標準日期格式,在Java8中有對這種日期格式的默認解析方式
Java8中提供了DateTimeFormatter類來解析/格式化日期捞奕。
在DateTimeFormatter中定義了許多默認的日期格式牺堰,下面通過DateTimeFormatter中默認定義的ISO_OFFSET_DATE_TIME解析:
String a = "2021-11-12T10:27:06+08:00";
LocalDateTime date = LocalDateTime.parse(a,DateTimeFormatter.ISO_OFFSET_DATE_TIME);
String dateString = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println("dateString: "+dateString);