如何以 yyyy-MM-ddTHH:mm:ss.SSS 格式降序排列日期列表
How to sort list of dates in defending order in yyyy-MM-ddTHH:mm:ss.SSS formte
我有一个日期列表是 yyyy-MM-ddTHH:mm:ss.SSS formate。我想按升序和降序对这些日期进行排序。是否有任何收集方法可以对这些日期进行排序?如何对这些日期进行排序
提前致谢
1) 使用适当的 SimpleDateFormat 解析您的字符串:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss.SSS");
try {
Date date = formatter.parse(dateInString);
} catch (ParseException e) {
e.printStackTrace();
}
2) 将每个日期存储在列表中。为此,首先实例化一个新列表...
ArrayList<Date> myDates = new ArrayList<Date>();
... 其次,在您的 try 语句中,在 parse 命令之后将每个日期添加到列表中:
myDates.add(date);
3) 使用以下方式对它们进行排序:
Collections.sort(myDates); // Ascending
或
Collections.sort(myDates, Collections.reverseOrder()); // Descending
为了获取 DateTimes 的毫秒数,我使用了 Joda Time API:http://www.joda.org/joda-time/
public class Testing
{
public static void main(String[] args) {
//yyyy-MM-ddTHH:mm:ss.SSS
String date1 = "2015-01-10T11:00:00.000";
String date2 = "2015-01-15T12:00:00.000";
String date3 = "2015-01-20T13:00:00.000";
List<String> dates = new ArrayList<String>();
dates.add(date2);
dates.add(date1);
dates.add(date3);
sort(dates);
for(String str : dates) {
System.out.println(str);
}
}
public static void sort(List<String> dates) {
Collections.sort(dates,new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
//The dates are currently sorted in Ascending order
return Long.compare(new DateTime(o1).getMillis(), new DateTime(o2).getMillis());
//To have them in Descending order just switch the DateTimes around
}
});
}
}
将字符串日期转换为 datetime:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-ddTHH:mm:ss.SSS");
DateTime dt = formatter.parseDateTime(string);
将它们放入列表中。
然后对列表进行排序:
Collections.sort(list);
1)First Iterate the List Of dates in string format .
On Each Item Call GetLongValueOfDateTimeString(date in string format) Then Return Value is in Long
public long GetLongValueOfDateTimeString(String dateTimeInStringFormat) {
DateFormat f = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss.SSS");
Date date;
long dateinMillis = 0;
try {
date = f.parse(dateTimeInStringFormat);
dateinMillis = date.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return dateinMillis;
}
2) Store each value in a list of long Value(below is the implementation).
long[] longs = new long[]{1L};
Long[] longObjects = ArrayUtils.toObject(longs);
List<Long> longList = java.util.Arrays.asList(longObjects);
longList.add(dateinMillis);
3) Sort them using:
Collections.sort(longList); (Ascending Order)
Collections.sort(longList).reverse(); (Descending Order)
我有一个日期列表是 yyyy-MM-ddTHH:mm:ss.SSS formate。我想按升序和降序对这些日期进行排序。是否有任何收集方法可以对这些日期进行排序?如何对这些日期进行排序
提前致谢
1) 使用适当的 SimpleDateFormat 解析您的字符串:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss.SSS");
try {
Date date = formatter.parse(dateInString);
} catch (ParseException e) {
e.printStackTrace();
}
2) 将每个日期存储在列表中。为此,首先实例化一个新列表...
ArrayList<Date> myDates = new ArrayList<Date>();
... 其次,在您的 try 语句中,在 parse 命令之后将每个日期添加到列表中:
myDates.add(date);
3) 使用以下方式对它们进行排序:
Collections.sort(myDates); // Ascending
或
Collections.sort(myDates, Collections.reverseOrder()); // Descending
为了获取 DateTimes 的毫秒数,我使用了 Joda Time API:http://www.joda.org/joda-time/
public class Testing
{
public static void main(String[] args) {
//yyyy-MM-ddTHH:mm:ss.SSS
String date1 = "2015-01-10T11:00:00.000";
String date2 = "2015-01-15T12:00:00.000";
String date3 = "2015-01-20T13:00:00.000";
List<String> dates = new ArrayList<String>();
dates.add(date2);
dates.add(date1);
dates.add(date3);
sort(dates);
for(String str : dates) {
System.out.println(str);
}
}
public static void sort(List<String> dates) {
Collections.sort(dates,new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
//The dates are currently sorted in Ascending order
return Long.compare(new DateTime(o1).getMillis(), new DateTime(o2).getMillis());
//To have them in Descending order just switch the DateTimes around
}
});
}
}
将字符串日期转换为 datetime:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-ddTHH:mm:ss.SSS");
DateTime dt = formatter.parseDateTime(string);
将它们放入列表中。
然后对列表进行排序:
Collections.sort(list);
1)First Iterate the List Of dates in string format .
On Each Item Call GetLongValueOfDateTimeString(date in string format) Then Return Value is in Long
public long GetLongValueOfDateTimeString(String dateTimeInStringFormat) {
DateFormat f = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss.SSS");
Date date;
long dateinMillis = 0;
try {
date = f.parse(dateTimeInStringFormat);
dateinMillis = date.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return dateinMillis;
}
2) Store each value in a list of long Value(below is the implementation).
long[] longs = new long[]{1L};
Long[] longObjects = ArrayUtils.toObject(longs);
List<Long> longList = java.util.Arrays.asList(longObjects);
longList.add(dateinMillis);
3) Sort them using:
Collections.sort(longList); (Ascending Order)
Collections.sort(longList).reverse(); (Descending Order)