- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
@Override
public boolean equals(Object obj) {
boolean answer = false;
if (obj instanceof Date) {
Date d = (Date)obj;
answer = (this.value.equals(d));
} else if (obj instanceof String) {
Date d = parse((String)obj);
answer = (this.value.equals(d));
} else if (obj instanceof Calendar) {
Calendar c = (Calendar)obj;
answer = (this.value.equals(c.getTime()));
} else if (obj instanceof AtomDate) {
Date d = ((AtomDate)obj).value;
answer = (this.value.equals(d));
}
return answer;
}
Проблема в данном случае в том, что нарушена симметрия: АтомДата может равняться строке (дате, календарю), но строка никогда не будет равна АтомДате.
Тогда вопрос: если equals в Java - эквивалентность, то как правильно проверять равенство?
http://svn.apache.org/repos/asf/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/AtomDate.java
я бы просто не стал ради одного формата даты yyyy-MM-dd'T'hh:mm:ss.SSS'Z' тянуть чей-то кривой сорец
Выдаёт неправильное время ;-) На моей машине разница с реальностью 8 часов
AtomDate выдаёт 2012-08-05T14:46:43.795Z
И прав AtomDate. Доктор, я умру?
Вот так вроде все ок: "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
заглючило меня, но AtomDate таки не нужен
Ну теперь, я думаю, и rat4 согласится с этим.