转换为日期时间格式“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
没有输出偏移量。
你好我无法理解我们需要使用什么时间格式来解析这个日期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
没有输出偏移量。