Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

timestamp の時間まで設定するには

java.sql.Timestampの変数に、時間分まで指定して
格納したいのですが、うまくいきません。
下のようなコードで試しているのですが、何か間違いがあるのでしょうか?


SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/ HH:mm");
java.util.Date date = sdf.parse("2000/04/01/ 00:00");
Timestamp ts = new java.sql.Timestamp(date.getTime());

8

回答

5241

閲覧

8件の回答

評価

0

ぐぐれば?

評価

0

うまくいかないとは?
何が起こっているの?
予期しない値?
例外?

コードを見る限り、何が問題かわかんない。
何を期待してるのさ?

評価

0

説明不足で申し訳ありません。

下記のtimestampの値をSQLによりDBに更新するときに例外が発生してしまいます。
例外はillegalargument Exceptionとなっています。

他に、修正点を絞り込む方法があれば、教えて下さい。

評価

0

>例外はillegalargument Exceptionとなっています。

どういうコードで?
DBは?ドライバは?Javaのバージョンは?

評価

0

oracleのJDBCドライバになります。
例外は、なくなったのですが、
現在の日付になってしまいます。

評価

0

そういう場合、俺だったら、
SQLを実行する直前の日付データの値を確認してみる。

評価

0

質問内容のコードを単体で、実行すると正しくデバックすると指定した時間が表示されました。
確認方法:ts.tostring();

ただし、「不良社員」さんがおっしゃるようにSQL形成時に、確認してみようと思います。
ちなみに、SQLまで実行時には、現在日付になってしまい、いまだ解決できていません(泣)。

評価

0

自己解決しました。
コードに問題はありませんでした。

DBのトリガーが実装されており、登録、更新時にシステム日付に切り替えるトリガーが有効となっていました。

助けていただきまして、ありがとうございました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。