2017-07-20 6 views
-3

文字列に "017/07/20 16:20:03"という文字列がpsiUpdateForm.getUpdateTime()であり、テーブルの列が日付型です。データを更新すると、次のコードが使用されますJavaで時刻を変換できません

DateFormat fmt = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
processor.addParameter(Types.DATE, fmt.parse(psiUpdateForm.getUpdateTime())); 

しかし、テーブルをチェックすると、データは2017/07/20 00:00:00にありますが、何ができますか?

+2

「プロセッサ」、「psiUpdateForm」とは何ですか?(あなたが言った文字列がメソッドから正確に返されますか?) – azro

+3

これは、SQL DATE型に対応する 'Types.DATE'を使用しているためです。これは時間のない日付です。代わりに 'Types.TIMESTAMP'を使用してください。 – Jesper

+1

mikezang、質問を編集して文脈を伝えてください。 @ジェスパーは、あなたが話していることを知っているようですが、私たちの一部は暗闇の中にいます。 –

答えて

1

定数Types.DATEは、日付のないSQL型DATEに対応します。

日付と時刻を保存するには、代わりにTypes.TIMESTAMPを使用してください。

もちろん、日付と時刻を格納できるように、データベースの列も正しい型でなければなりません。

0

日付と時刻を保存する場合は、Dateの代わりにjava DateTime/sql TimeStampを使用してください。

関連する問題