• ベストアンサー

データベースから日付型を取得したいんですが

初心的なことですいません データベースから生年月日項目の日付型(1999/11/01)をとってきてたいんですが、getDate型でとってくればいいんでしょうか?その生年月日を使って計算をしたいでカレンダークラスに入れたいんですが、どうやったらいいのかわかりません、参考にしたらいいサイトとかあったら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ResultSet変数をrsとして String strData = rs.getString(String 行番号); String strYear = strData.subString(strData,0,4); String strMonth = strData.subString(strData,5,7); String strDay = strData.subString(8); int intYear = Integer.parseInt(strYear); int intMonth = Integer.parseInt(strMonth); int intDay = Integer.parseInt(strDay); Calendar cal = new Calendar(); cal.set(intYear, intMonth, intDay); で、OKだとおもいます。私もこの手のプログラムは久しぶりですが、多分動くとおもいます。 なお、あなたくらいのレベルならば秀和システムのJava逆引き大全という本が役に立つと思います。

参考URL:
http://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0815-X
saai
質問者

お礼

遅くなってすいません、なるほど、そういう風にするんですか、ありがとうございます。

その他の回答 (4)

  • tachiwa
  • ベストアンサー率34% (25/73)
回答No.5

SimpleDateFormatを使ってサンプルコードを書いてみました。 import java.util.*; import java.text.*; class ShowDate{ ShowDate(String x_day){ try{ SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd"); Date date = null; date = f.parse(x_day); System.out.println(date); String someDay = f.format(date); System.out.println(someDay); } catch(ParseException e){ System.out.println(e); } } } public class TestDate{ public static void main (String[] args){ ShowDate showDate = new ShowDate("2006/02/23"); } } 結果 Thu Feb 23 00:00:00 JST 2006 2006/02/23 となるのでどちらでもいいように使ってください。

noname#49664
noname#49664
回答No.4

どういう形でデータ管理しているかわからないのでなんともいえなんですが・・・。 おっしゃるように、ResultSetのgetDate、getTime、getTimestampで普通は取得できると思いますよ。 java.sql.Date d = rs.getDate("hoge"); java.sql.Time t = rs.getTime("hoge"); java.sql.Timestamp ts = rs.getTimestamp("hoge"); こんな感じでDateやTimeやTimestampインスタンスとして取得できるはずです。Date/Time/Timestampはjava.util.Dateを継承したクラスですからDate関係のメソッドはすべて使えますので後はいろいろ処理できるでしょう。  もし、なんらかの問題でうまくインスタンスが取得できないとかいうのであれば、Stringの値から取得ことになるでしょう。これは、普通はDateFormatを使うのが常道でしょう。 SimpleDateFormat f = new SimpleDateFormat ("yyyy/MM/dd"); Date date = f.format(String値); こんな感じで、指定したフォーマットで記したString値からDateインスタンスを生成できます。

回答No.3

subString→substringでした。。 3行とも間違っています。直しておいてください。

回答No.1

Calendarクラスを使うならば、 年・月・日をそれぞれintで取得し、 Calendarクラスのsetメソッドでそれぞれをセットし、 処理を施す。 いかがでしょうか?

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/util/Calendar.html

関連するQ&A