无法使用DateUtils.parseDate从字符串中分析日期YYYY MM DDThh:MM:ssTZD



将日期作为字符串:"2021-09-11T12:02:50-06:00Z";。想要使用apacheDateUtils:转换为java.util.Date

public static Date toDate (String dateString) throws ParseException {
String DATETIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'TZD''Z'";
return DateUtils.parseDate(dateString, new String[]{DATETIME_FORMAT});
}

给出以下例外:

java.text.ParseException: Unable to parse the date: 2021-09-11T12:02:50-06:00Z
at org.apache.commons.lang3.time.DateUtils.parseDateWithLeniency(DateUtils.java:388)
at org.apache.commons.lang3.time.DateUtils.parseDate(DateUtils.java:302)
at org.apache.commons.lang3.time.DateUtils.parseDate(DateUtils.java:279)

尝试将DATETIME_FORMAT作为";yyyy-MM-dd'TH:MM:ss'TZD'Z'"yyyy-MM-dd'TH:MM:ss'TZD'Z'"YYYY-MM-DD'h:MM:ss'TZD'";

请在格式和日期字符串中进行此更正。

public static Date toDate (String dateString) throws ParseException {
String DATETIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ";
return DateUtils.parseDate(dateString, new String[]{DATETIME_FORMAT});
}

并且在输入格式中不要使用冒号。示例

System.out.println(toDate  ("2021-09-11T12:02:50-0600"));

最新更新