私は文字列を持っています
String s = "01 NOVEMBER 2012";
次に、それを sqlDate に解析します。そしてそれをデータベースに挿入します。
その文字列を sqlDate に解析することは可能ですか?!?!
はい、SQLの日付形式は「yyyy-mm-dd」です
私は文字列を持っています
String s = "01 NOVEMBER 2012";
次に、それを sqlDate に解析します。そしてそれをデータベースに挿入します。
その文字列を sqlDate に解析することは可能ですか?!?!
はい、SQLの日付形式は「yyyy-mm-dd」です
SimpleDateFormat
文字列の日付を解析して java.util.Date にするために使用します
java.util.Date utilDate = new SimpleDateFormat("dd MMM yyyy").parse("01 NOVEMBER 2012");
次に、ミリスを使用して java.sql.Date に変換します
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
私は現代的な答えを提供しています。日付処理には、Java の最新の日付と時刻の API である java.time を使用することをお勧めします。
DateTimeFormatter dateFormatter =
new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("dd MMMM uuuu")
.toFormatter(Locale.ENGLISH);
String s = "01 NOVEMBER 2012";
LocalDate date = LocalDate.parse(s, dateFormatter);
System.out.println(date);
出力:
2012-11-01
あなたはjava.sql.Date
?おそらく、何も必要ありません。SQL データベースで使用するために 1 つが必要だったと思います。JDBC 4.2以降、LocalDate
そこでも使用できます。例えば:
PreparedStatement statement = yourDatabaseConnection.prepareStatement(
"insert into your_table (your_date_column) values (?);");
statement.setObject(1, date);
statement.executeUpdate();
PreparedStatement.setObject()
(not )の使用に注意してくださいsetDate()
。
java.sql.Date
まだ java.time にアップグレードされていないレガシー APIが必要な場合、変換は簡単で簡単です。
java.sql.Date oldfashionedJavaSqlDate = java.sql.Date.valueOf(date);
System.out.println(oldfashionedJavaSqlDate);
2012-11-01