0

我如何实现一个可以对日期/时间字符串列表进行排序的java比较器类?

像例如

我有

2012-06-15T12:01:00.000+08:00
2012-06-25T12:15:00.000+08:00
2012-06-08T00:00:00.000Z

然后它应该像这样排序

2012-06-08T00:00:00.000Z
2012-06-15T12:01:00.000+08:00
2012-06-25T12:15:00.000+08:00
4

3 回答 3

6

这里有两个问题(因为直接解析字符串是行不通的)。

  1. 将您的字符串转换为日期。有关详细信息和DateFormat.parse()方法,请参阅SimpleDateFormat
  2. 使用Collections.sort对集合中的后续日期进行排序。
于 2012-06-15T09:26:39.910 回答
2

将它们解析为java.util.Date. 日期已经实施Comparable

于 2012-06-15T09:24:52.730 回答
0

好吧,如果您想要一个快速的解决方案,如下所示。

http://www.ltg.ed.ac.uk/NITE/nxt/apidoc/net/sourceforge/nite/util/SortedList.html

此外,如果您知道每个日期都会有所不同,那么请使用 TreeSet。您可以按如下方式使用它们。

制作一个新的 TreeSet 并继续在其中添加您的日期。它将自动排序,因为 TreeSet 对其包含的所有对象进行排序,如果它们实现了可比较(或提供了比较器)。

于 2012-06-15T09:59:27.297 回答