Java字符串日期排序遇DateTimeParseException报错求助
问题排查与解决
你的报错核心原因是日期格式符不匹配:
- 你的日期字符串里小时是一位数(比如
10/21/2022 9:33 pm中的9) - 但你使用的
hh是两位数小时格式(要求输入是01-12这种带前导零的格式),所以解析到第11位(也就是9的位置)时会报错。
把格式符里的hh改成h即可解决,h支持解析1-12的一位数或两位数小时:
// 修改后的格式化器 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy h:mm a", Locale.US); // 排序逻辑不变 Collections.sort(li, (s1, s2) -> LocalDateTime.parse(s1, formatter) .compareTo(LocalDateTime.parse(s2, formatter)));
这个修改后不管是一位数小时(如9:33 pm)还是两位数小时(如10:00 am)都能正常解析排序。
内容的提问来源于stack exchange,提问作者nikhil udgirkar
相关产品推荐
相关产品推荐

