转换为日期时间格式“2020-02-11T17:26:31-05:00”

Convert to Date Time Format "2020-02-11T17:26:31-05:00"

你好我无法理解我们需要使用什么时间格式来解析这个日期2020-02-11T17:26:31-05:00我已经尝试使用日期格式化程序和简单的日期格式但它不起作用

日期以这种形式出现 ->2020-02-11T17:26:31-05:00 我无法识别此日期的类型

下面是我试过但抛出异常的代码片段

DateTimeFormatter responseFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss-SSSXXX'Z'",
                              Locale.ENGLISH);
                     responseDateTime = LocalDateTime.parse(otmmResponseDate, responseFormatter);

请注意,您的日期字符串中有一个偏移量 -05:00。因此,您的字符串不代表 LocalDateTime,而是 OffsetDateTime,应该由 OffsetDateTime.parse 解析(并非所有内容都是 LocalDateTime!):

// the format is ISO 8601, so it can be parsed directly without a DateTimeFormatter
OffsetDateTime odt = OffsetDateTime.parse("2020-02-11T17:26:31-05:00");

如果你只想要它的部分的本地日期时间,那么你可以在之后调用toLocalDateTime

LocalDateTime ldt = odt.toLocalDateTime();

这是一个日期时间 String,包含负五小时的偏移量。您甚至不必直接使用 DateTimeFormatter,因为将其解析为 OffsetDateTime 即可:

public static void main(String[] args) {
    String dateString = "2020-02-11T17:26:31-05:00";
    OffsetDateTime odt = OffsetDateTime.parse(dateString);

    System.out.println(odt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
}

输出:

2020-02-11T17:26:31

并不是说这使用 DateTimeFormatter 没有输出偏移量。