如何按日期和时间对列表进行排序?

时间:2018-10-07 08:17:27

标签: java android sorting datetime arraylist

我有这样的日期和时间字符串

  

“ 2018年10月30日星期四12:42:56 GMT + 05:30”

     

“ 2018年10月21日星期一9:13:56 GMT + 05:30”

我想按升序对它们进行排序。

我正在尝试使用以下代码来执行此操作,但未获得任何结果。

 try {

                    Collections.sort(list, new Comparator<Model>() {
                        @Override
                        public int compare(Model lhs, Model rhs) {

                            SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss YYYY", Locale.getDefault());

                            Date left = null, right = null;

                            try {

                                left = sdf.parse(String.valueOf(lhs.date_time));
                                right = sdf.parse(String.valueOf(rhs.date_time));

                            } catch (ParseException e) {
                                e.printStackTrace();
                            }

                            if (left != null && left.after(right)) {
                                return -1;
                            } else {
                                return 1;
                            }
                        }
                    });

                } catch (Exception e) {
                    Toast.makeText(getActivity(), "Failed To Sort", Toast.LENGTH_SHORT).show();
                }

我做错了什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

我已经自己解决了,就像这样。

try {

                    Collections.sort(list, new Comparator<Model>() {
                        @Override
                        public int compare(Model lhs, Model rhs) {

                            SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss", Locale.getDefault());

                            Date left = null, right = null;

                            try {

                                left = sdf.parse(String.valueOf(lhs.date_time));
                                right = sdf.parse(String.valueOf(rhs.date_time));

                            } catch (ParseException e) {
                                e.printStackTrace();
                            }

                            if (left != null && left.after(right)) {
                                return 1;
                            } else {
                                return -1;
                            }
                        }
                    });

                } catch (Exception e) {
                    Toast.makeText(getActivity(), "Failed To Sort Matches", Toast.LENGTH_SHORT).show();
                }