Помогите с сравнением дат. Никак не могу понять почему не работает:
(java 1.4)
public class Temp {
public static void main(String args[]) {
Date date1 = new Date();
date1.setHours(1);
date1.setMinutes(1);
date1.setSeconds(1);
Date date2 = new Date(107, 6, 18, 1, 1, 1);
System.out.println(date1.toGMTString()+" = "+date2.toGMTString()+" : "+date1.compareTo(date2));
}
}
В результате на экране строка:
17 Jul 2007 22:01:01 GMT = 17 Jul 2007 22:01:01 GMT : 1
Но почему результатом сравнения является 1 а не 0, как написано в описании функции Date.comparaTo(Date)?
Здравствуйте, <Аноним>, Вы писали:
Поди потому что доли секунды не учли?

Вообще для сравнение дат лучше (удобнее, проще) пользоваться классом Calendar, посмотрите поиском — это постоянная тема обсуждения в данном разделе.
Здравствуйте, Аноним, Вы писали:
А>Помогите с сравнением дат. Никак не могу понять почему не работает:
А>...
А>Но почему результатом сравнения является 1 а не 0, как написано в описании функции Date.comparaTo(Date)?
package java.util;
...
public class Date ... {
...
public int compareTo(Date anotherDate) {
long thisTime = getMillisOf(this);
long anotherTime = getMillisOf(anotherDate);
return (thisTime<anotherTime ? -1 : (thisTime==anotherTime ? 0 : 1));
}
...
}
public class BBB {
public static void main(String[] args) throws Exception {
Date date1 = new Date();
date1.setHours(1);
date1.setMinutes(1);
date1.setSeconds(1);
Date date2 = new Date(107, 6, 18, 1, 1, 1);
System.out.println(date1 + " = " + date2 + " : " + date1.compareTo(date2));
System.out.println("First date:");
printInnerState(date1);
System.out.println("");
System.out.println("Second date");
printInnerState(date2);
}
private static void printInnerState(Date date) throws Exception {
Field field = Date.class.getDeclaredField("cdate");
field.setAccessible(true);
System.out.println("\tcdate is " + field.get(date));
}
}
Output:
Wed Jul 18 01:01:01 MSD 2007 = Wed Jul 18 01:01:01 MSD 2007 : 1
First date:
cdate is 2007-07-18T01:01:01.671+0400
Second date
cdate is 2007-07-18T01:01:01.000+0400
P.S. не смущает, что ты сплошь
deprecated методы используешь?
Здравствуйте, Leith, Вы писали:
L>А вот с поиском что-то в последнее время проблемы — не работает он.
Читаю через Janus — полет нормальный.