以下は私のコードスニペットです、
for(int i = 0;i < 24;i++) {
Calendar calHourlyObj = new GregorianCalendar(2013,05,05);
calHourlyObj.add(Calendar.HOUR_OF_DAY, i);
java.sql.Date sqldate1 = new java.sql.Date((calHourlyObj.getTime()).getTime());
System.out.println("sqldate1"+sqldate1);
}
ここでは、「calHourlyObj」の特定の日付範囲のカレンダー オブジェクトがあり、ループ内でその日のすべての時間にカレンダー オブジェクトを設定しています。この calHourlyObj を java.util.Date に割り当てると、完全なタイムスタンプで日付が取得されます。しかし、この日付オブジェクトを、java.sql.Date 形式でのみ日付を受け入れるストアド プロシージャに渡す必要があります。calHourlyObj を java.sql.Date に割り当てると、タイムスタンプが失われ、毎回日付が最初の 1 時間に設定します。
完全なタイムスタンプで java.sql.Date を取得するにはどうすればよいですか。
あるいは、私は試しました
java.sql.Timestamp sqldate1 = new java.sql.Timestamp((calHourlyObj.getTime()).getTime());
cstmt.setTimeStamp(1,sqldate1 )
と
java.sql.Timestamp sqldate1 = new java.sql.Timestamp((calHourlyObj.getTime()).getTime());
cstmt.setObject(1,sqldate1,TYPES.Oracle);
しかし、ここではコンパイル エラーは発生しません。しかし、ストアド プロシージャは期待どおりに動作しません。完全なタイムスタンプで java.sql.Date オブジェクトを取得するにはどうすればよいですか?