- PR -

日付処理の定石について

1
投稿者投稿内容
夕飯のおかず
会議室デビュー日: 2006/01/25
投稿数: 8
投稿日時: 2006-01-25 15:13
日付処理全般のことで悩んでいるJava初心者です。お知恵を拝借できないでしょうか。

現在、servletからDB(PostgreSQL)にアクセスし、データを受け渡す処理を記述しています。値が秒まで欲しいため、DBのカラムをTimeStamp型で作成しており、結果セットから取得する際には

java.sql.Timestamp aaa = resultset.getTimestamp("hoge");

のようにしております。取得した値を日付処理(加減算や比較等)に移す場合、どのように行うのが定石なのでしょうか?

Java APIドキュメントなども見てはいるのですが、java.sql.Dateとjava.util.Dateとの違いや、java.sql.Timestampの利用方法、それらからCalenderへの変換などがイマイチ飲み込めず困っております。日付処理について詳しく書かれた書籍やHP等の情報でも結構ですので、心当たりのある方は教えていただけませんでしょうか?

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-01-25 15:17
「日付 java 計算」とか調べてみてはいかがでしょう。
夕飯のおかず
会議室デビュー日: 2006/01/25
投稿数: 8
投稿日時: 2006-01-25 15:50
はい、一応それらのキーワードを元に事前に調べてはみたのですが、主にjava.util.Dateとかjava.util.Calendar等の記事は多く見つけられるものの、java.sql.Timestampに触れられているものが少なくて苦慮しております。

そもそもgetTimestampで取得せずにSQLの置換変数等によって任意の文字列で取得したものを利用した方が早いのか、セオリーみたいなものがあるのか?と思って質問させていただきました。

ただ単純に

Date aaa = resultset.getTimestamp("hoge");

等とすれば良いのでしょうか?トンチンカンな質問をしておりましたらご容赦ください。

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-01-25 15:57
>Date aaa = resultset.getTimestamp("hoge");
>
>等とすれば良いのでしょうか?トンチンカンな質問をしておりましたらご容赦ください。
そうそう、思いついたらまずやってみることです。
いい線いってます、というかバッチリではないでしょうか。

Timestamp は Date 型を継承していますので、Date 型に使えるテクニックはそのまま応用できます!
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Timestamp.html
夕飯のおかず
会議室デビュー日: 2006/01/25
投稿数: 8
投稿日時: 2006-01-25 16:44
>>そうそう、思いついたらまずやってみることです。
>>いい線いってます、というかバッチリではないでしょうか

なんか、DBのカラムの型やresultset.getDate()/resultset.getTimestamp()で返される値、それにjava.util.Dateとjava.sql.Date等がごちゃ混ぜになっていたようです。
随分と稚拙なことを伺っていたようで申し訳ありませんでした。m(_ _)m

1

スキルアップ/キャリアアップ(JOB@IT)