web-dev-qa-db-ja.com

JavaでカレンダーをJava.sql.Dateに変換する方法は?

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型に変換したいと思います。

56
Alex

getTime() メソッドがあります(getDateと呼ばれない理由は不明です)。

Edit:Java.sql.Dateが必要であることに気付きました。 cal.getTimeInMillis()を使用する答えの1つは、必要なものです。

117
Jim

cal.getTime()を試しましたか?これは日付表現を取得します。

Javadocも参照してください。

30
Kurt Du Bois

stmt.setDate(1, new Java.sql.Date(cal.getTimeInMillis()))を使用

24
James Jithin

変換は簡単で、日付と時刻の設定は少し注意が必要です。以下に例を示します。

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()));
10
rebeliagamer

Calendar値をDateインスタンスに変換する簡単な方法を次に示します。

Calendar C = new GregorianCalendar(1993,9,21);

Date DD = C.getTime();

System.out.println(DD);
6
David Ophiuchus

stmt.setDate(1, new Java.sql.Date(cal.getTime().getTime()));

3
Steve Pitchers

私はこのコードが機能することを発見しました:

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/

1
Orit