将字符串“2008-02-10T12:29:33.000”转换为具有相同格式的日期2008-02-10T12:29:33.000 in Java

时间:2015-06-12 14:02:38

标签: java string transform simpledateformat

我有一个包含字符串的ArrayList,如2008-02-10T12:29:33.000

[2008-02-11T12:29:33.000, 2008-02-10T12:29:33.000]...

我想按自然顺序对此ArrayList进行排序。为此,我必须将此字符串转换为Date I quess。 排序后排序ArrayList的顺序为:

[2008-02-10T12:29:33.000, 2008-02-11T12:29:33.000]

我使用的编程语言是Java。

3 个答案:

答案 0 :(得分:4)

虽然您可以对字符串进行排序,但我会将这些日期存储为LocalDateTime而不是字符串,并保持这种状态。这将使操纵它们变得更加容易。

转型可能如下:

List<String> list = Arrays.asList("2008-02-11T12:29:33.000", "2008-02-10T12:29:33.000");
List<LocalDateTime> dates = list.stream().map(LocalDateTime::parse).collect(toList());

(这是有效的,因为你的字符串是正确的ISO格式)。

然后排序就像:

Collections.sort(dates);

答案 1 :(得分:2)

我不相信你需要做任何转换,因为这些字符串有一个自然的顺序(至少我看不到反例)。

所以Collections.sort()应该做到这一点。

答案 2 :(得分:0)

ArrayList<String> dates = new ArrayList<String>();
dates.add("2008-02-11T12:29:33.000");
dates.add("2008-02-10T12:29:33.000");
Collections.sort(dates);
for (String date : dates)
{
  System.out.println(date);
}