将字符串 "2008-02-10T12:29:33.000" 转换为格式相同的日期 2008-02-10T12:29:33.000 in Java
Convert String "2008-02-10T12:29:33.000" to a Date with the same format 2008-02-10T12:29:33.000 in Java
我有一个 ArrayList,其中包含类似 2008-02-10T12:29:33.000
的字符串
[2008-02-11T12:29:33.000, 2008-02-10T12:29:33.000]...
我想按自然顺序对这个 ArrayList 进行排序。为此,我必须将此字符串转换为我想要的日期。
对上面的ArrayList进行排序后的顺序应该是:
[2008-02-10T12:29:33.000, 2008-02-11T12:29:33.000]
我使用的编程语言是Java。
虽然您可以只对字符串进行排序,但我会将这些日期存储为 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);
我认为您不需要进行任何转换,因为这些字符串有自然顺序(至少我看不到反例)。
所以 Collections.sort()
应该可以解决问题。
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);
}
我有一个 ArrayList,其中包含类似 2008-02-10T12:29:33.000
的字符串[2008-02-11T12:29:33.000, 2008-02-10T12:29:33.000]...
我想按自然顺序对这个 ArrayList 进行排序。为此,我必须将此字符串转换为我想要的日期。 对上面的ArrayList进行排序后的顺序应该是:
[2008-02-10T12:29:33.000, 2008-02-11T12:29:33.000]
我使用的编程语言是Java。
虽然您可以只对字符串进行排序,但我会将这些日期存储为 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);
我认为您不需要进行任何转换,因为这些字符串有自然顺序(至少我看不到反例)。
所以 Collections.sort()
应该可以解决问题。
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);
}