Calendar cal;
String sql = "INSERT INTO ttable (dt) values (?);"
//dt is a dateTime field in ttable
PreparedStatement stmt = connection.prepareStatement(sql);
stmt = setDate(1,cal); //not working
stmt.execute();
stmt.close();
テーブルに挿入するために、calをDate型に変換したいと思います。
getTime()
メソッドがあります(getDateと呼ばれない理由は不明です)。
Edit:Java.sql.Dateが必要であることに気付きました。 cal.getTimeInMillis()
を使用する答えの1つは、必要なものです。
cal.getTime()
を試しましたか?これは日付表現を取得します。
Javadocも参照してください。
stmt.setDate(1, new Java.sql.Date(cal.getTimeInMillis()))
を使用
変換は簡単で、日付と時刻の設定は少し注意が必要です。以下に例を示します。
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2000);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 1);
cal.set(Calendar.MINUTE, 1);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
stmt.setDate(1, new Java.sql.Date(cal.getTimeInMillis()));
Calendar
値をDate
インスタンスに変換する簡単な方法を次に示します。
Calendar C = new GregorianCalendar(1993,9,21);
Date DD = C.getTime();
System.out.println(DD);
stmt.setDate(1, new Java.sql.Date(cal.getTime().getTime()));
私はこのコードが機能することを発見しました:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");
Calendar calendar = new GregorianCalendar(2013,0,31);
System.out.println(sdf.format(calendar.getTime()));
このチュートリアルで残りを見つけることができます:
http://www.mkyong.com/Java/java-date-and-calendar-examples/