解析日期在Android 12中崩溃

发布于 2025-02-06 17:24:43 字数 1415 浏览 2 评论 0原文

我使用以下代码来解析日期来对列表进行排序:

Collections.sort(collaborationRoomModelList, new Comparator<CollaborationRoomModel>() {
                    DateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");

                    @Override
                    public int compare(CollaborationRoomModel lhs, CollaborationRoomModel rhs) {
                        try {
                            return f.parse(rhs.getDate()).compareTo(f.parse(lhs.getDate()));
                        } catch (ParseException e) {
                            throw new IllegalArgumentException(e);
                        }
                    }
                });

此代码在Android 7上效果很好,但在Android 12中崩溃。下面是碰撞日志:

java.lang.IllegalArgumentException: java.text.ParseException: Unparseable date: "Tue Jun 07 14:40:24 GMT+10:00 2022"
        at com.bizfluence.ui.business.collabmsglist.CollabMessageList$3$1.compare(CollabMessageList.java:389)
        at com.bizfluence.ui.business.collabmsglist.CollabMessageList$3$1.compare(CollabMessageList.java:381)
        at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
        at java.util.TimSort.sort(TimSort.java:220)
        at java.util.Arrays.sort(Arrays.java:1492)
        at java.util.ArrayList.sort(ArrayList.java:1470)
        at java.util.Collections.sort(Collections.java:206)
       

任何解决此问题的解决方案都非常感谢。

I am using the following code to parse date to sort a list:

Collections.sort(collaborationRoomModelList, new Comparator<CollaborationRoomModel>() {
                    DateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");

                    @Override
                    public int compare(CollaborationRoomModel lhs, CollaborationRoomModel rhs) {
                        try {
                            return f.parse(rhs.getDate()).compareTo(f.parse(lhs.getDate()));
                        } catch (ParseException e) {
                            throw new IllegalArgumentException(e);
                        }
                    }
                });

This code works perfectly fine on Android 7 but crashes in android 12. Below is the crash log:

java.lang.IllegalArgumentException: java.text.ParseException: Unparseable date: "Tue Jun 07 14:40:24 GMT+10:00 2022"
        at com.bizfluence.ui.business.collabmsglist.CollabMessageList$3$1.compare(CollabMessageList.java:389)
        at com.bizfluence.ui.business.collabmsglist.CollabMessageList$3$1.compare(CollabMessageList.java:381)
        at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
        at java.util.TimSort.sort(TimSort.java:220)
        at java.util.Arrays.sort(Arrays.java:1492)
        at java.util.ArrayList.sort(ArrayList.java:1470)
        at java.util.Collections.sort(Collections.java:206)
       

Any solution to fix this issue is greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

书信已泛黄 2025-02-13 17:24:43

添加当地解决了问题。在Android 7和12上都可以正常工作。

DateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.US);

Adding the Local solved the issue. Works fine on both android 7 and 12.

DateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.US);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文