- ベストアンサー
データベースから日付型を取得したいんですが
初心的なことですいません データベースから生年月日項目の日付型(1999/11/01)をとってきてたいんですが、getDate型でとってくればいいんでしょうか?その生年月日を使って計算をしたいでカレンダークラスに入れたいんですが、どうやったらいいのかわかりません、参考にしたらいいサイトとかあったら教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
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逆引き大全という本が役に立つと思います。
その他の回答 (4)
- tachiwa
- ベストアンサー率34% (25/73)
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 となるのでどちらでもいいように使ってください。
どういう形でデータ管理しているかわからないのでなんともいえなんですが・・・。 おっしゃるように、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インスタンスを生成できます。
- kamkamkam3
- ベストアンサー率42% (216/514)
subString→substringでした。。 3行とも間違っています。直しておいてください。
- susumufire
- ベストアンサー率22% (86/380)
Calendarクラスを使うならば、 年・月・日をそれぞれintで取得し、 Calendarクラスのsetメソッドでそれぞれをセットし、 処理を施す。 いかがでしょうか?
お礼
遅くなってすいません、なるほど、そういう風にするんですか、ありがとうございます。