日期解析:2021-11-12T10:27:06+08:00

这是一种常见的第三方接口返回的日期格式,因为有别于我们常用的"yyyy-MM-dd HH:mm:ss"格式,所以我们首先要把这种字符串解析为Date,再转为需要的格式。

类似日期2021-11-12T10:27:06+08:00 的 格式为:yyyy-MM-dd’T’HH:mm:ssXXX
其中:

T是不需要解析的无意义字符,需要用单引号包起来
+08:00是时区,对应为"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);

你可能感兴趣的:(日期解析:2021-11-12T10:27:06+08:00)