Java 对一组日期时间值进行排序
Java sorting a collection of datetime values
我正在使用 notes.jar 莲花笔记 api 提取电子邮件的日期和时间。当我将它们添加到集合中时,如果像这样添加它们:
Vector times = doc.getItemValueDateTimeArray("PostedDate");
for (int j=0; j<times.size(); j++) {
Object time = times.elementAt(j);
if (time.getClass().getName().endsWith("DateTime")) {
String Listadd = ((DateTime)time).getLocalTime();
NotesDates.add((DateTime)time);
我收到错误:
lotus.domino.local.DateTime cannot be cast to java.lang.Comparable
当我将值添加为字符串时,代码运行,但我无法对集合进行排序。
如何对日期和时间集合进行排序以查找最早和最晚的?
创建自定义 Comparator
,将 Lotus 的 DateTime
作为输入。
在代码中根据需要比较 DateTime
,例如将它们转换为标准 java.util.Date
或获取单个元素(年、月、日...)并单独比较它们。
您有几个选择。这里有两个。
使用 java.util.Date 的集合代替 lotus.domino.local.DateTime
lotus notes DateTime对象有一个方法toJavaDate()
,一个java.util.Date为你实现了Comparable接口
为 lotus.domino.local.DateTime 对象实现自定义比较器。再次将日期转换为 java 日期并使用它的比较方法可能是最简单的,而不是重新发明轮子。
我正在使用 notes.jar 莲花笔记 api 提取电子邮件的日期和时间。当我将它们添加到集合中时,如果像这样添加它们:
Vector times = doc.getItemValueDateTimeArray("PostedDate");
for (int j=0; j<times.size(); j++) {
Object time = times.elementAt(j);
if (time.getClass().getName().endsWith("DateTime")) {
String Listadd = ((DateTime)time).getLocalTime();
NotesDates.add((DateTime)time);
我收到错误:
lotus.domino.local.DateTime cannot be cast to java.lang.Comparable
当我将值添加为字符串时,代码运行,但我无法对集合进行排序。
如何对日期和时间集合进行排序以查找最早和最晚的?
创建自定义 Comparator
,将 Lotus 的 DateTime
作为输入。
在代码中根据需要比较 DateTime
,例如将它们转换为标准 java.util.Date
或获取单个元素(年、月、日...)并单独比较它们。
您有几个选择。这里有两个。
使用 java.util.Date 的集合代替 lotus.domino.local.DateTime lotus notes DateTime对象有一个方法
toJavaDate()
,一个java.util.Date为你实现了Comparable接口为 lotus.domino.local.DateTime 对象实现自定义比较器。再次将日期转换为 java 日期并使用它的比较方法可能是最简单的,而不是重新发明轮子。