[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] java.sql.Dateを日付判定に利用する




>関係ないですけどキャストの問題はコピーメソッドをclone()以外の
>メソッドとして実装して、そこからsuper.clone()すれば使用者がキャストを
>かけなくてもよくなるような気が・・・

キャストしなくて済むといえば、
clone() ではありませんが java.sql.Date.valueOf(String s) という
staticメソッドを日付の文字列判定のために使ってみました。

Java-Houseメーリングリストには java.util.GregorianCalendar を使う
例が投稿されていましたが、これだと 1998 98 24 といった変な日付でも
オーケーになってしまいます。

java.sql.Date だと、java.sql.Date date1 = java.sql.Date.valueOf("1998-98-24");
と書いて、date1.toString() とやると "2006-01-24" が返って来ます。
これは仕様としては納得できます。

何で java.sql.Date で文字列を引数にしたインスタンス生成が
コンストラクターでなくstaticメソッドになっているのか理由は分かりません。
(new しなくて済むから?)

java.sql.Date.valueOf(String s)のスーパークラスの java.util.Date には、
Date(String s) というコンストラクターがあるのですが。
---------------------------------------------------------------
           遠藤靖之 (えんどう やすゆき)
   E-mail: yasuyuki@xxxxxxxxxx
      URL: http://members.aol.com/Eyasuyuki/ (Java互助会ホームページ)
〒171-0022 豊島区南池袋 2-14-10 瀬川池袋ビル 3F
           (株)エムティシー 技術営業部
       TEL 03-5396-0521 / FAX 03-5396-0525