8

私は文字列を持っています

String s = "01 NOVEMBER 2012";

次に、それを sqlDate に解析します。そしてそれをデータベースに挿入します。

その文字列を sqlDate に解析することは可能ですか?!?!

はい、SQLの日付形式は「yyyy-mm-dd」です

4

3 に答える 3

16

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());
于 2012-10-11T16:14:39.590 に答える
1

java.time

私は現代的な答えを提供しています。日付処理には、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

リンク

于 2020-07-04T15:54:35.833 に答える