hajuBlog

webとかに関する自分のメモ的なブログ

Teeda dateの比較

2008-04-25 10:29:36 | Teeda
comparater使って日付を比較することがありまして、下記のように書いたらうまくいきませんでした。

private int sortValue(Object obj1, Object obj2,String key){
if(((Map)obj1).get(key).getClass() == Integer.class){
Integer v1 = (Integer)((Map)obj1).get(key);
Integer v2 = (Integer)((Map)obj2).get(key);
if(updown == 0)
return v2.compareTo(v1);
else
return v1.compareTo(v2);
}
else if(((Map)obj1).get(key).getClass() == Date.class){
Date v1 = (Date)((Map)obj1).get(key);
Date v2 = (Date)((Map)obj2).get(key);
if(updown == 0)
return v2.compareTo(v1);
else
return v1.compareTo(v2);
}

なぜうまくいかなかったのかとゆうとDate.classを使っているがDBの型がtimestampだった為でした。
timestampだと形式上Dateと同じだったので一見わからなかった。
今回は下記のようにsortValue2を作りDateのみ渡すメソッドを作成し回避しました。

private int sortValue2(Object obj1, Object obj2,String key){
if(((Map)obj1).get(key).getClass() == Date.class){
Date v1 = (Date)((Map)obj1).get(key);
Date v2 = (Date)((Map)obj2).get(key);
if(updown == 0)
return v2.compareTo(v1);
else
return v1.compareTo(v2);
}
}
ジャンル:
ウェブログ
コメント (1) |  トラックバック (0) |  この記事についてブログを書く
Messenger この記事をはてなブックマークに追加 mixiチェック シェア
« ブログ立ち上げま... | トップ | DynamicProperty... »

コメント

コメント日が  古い順  |   新しい順
勉強会で話してください (suz-lab)
2008-04-25 18:48:34
Comparaterについて勉強会でお話してください。
みんな知りたがってます。

コメントを投稿


コメント利用規約に同意の上コメント投稿を行ってください。
※文字化け等の原因になりますので、顔文字の利用はお控えください。
下記数字4桁を入力し、投稿ボタンを押してください。この数字を読み取っていただくことで自動化されたプログラムによる投稿でないことを確認させていただいております。
数字4桁

トラックバック

この記事のトラックバック  Ping-URL

あわせて読む