web-dev-qa-db-ja.com

文字列からsqlへの日付変換Javaで異なる出力を与える?

日付の文字列形式があります。 Sql Dateに変更する必要があります。そのため、次のコードを使用しました。

String startDate="01-02-2013";
SimpleDateFormat sdf1 = new SimpleDateFormat("dd-mm-yyyy");
Java.util.Date date = sdf1.parse(startDate);
Java.sql.Date sqlStartDate = new Java.sql.Date(date.getTime());  

上記のコードを使用して実行すると。次の出力が得られました。

2013-01-01.  

ここで、月は正しく変換されません。
問題の場所を教えて、正しい結果を得るためのサンプルコードを提供してください。

23
Mr.Chowdary

mmです。 monthsにはMMが必要です:

SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");

気を悪くしないでください-この正確な間違いはたくさん起こります。

43
Bohemian

mm「分」の略 。代わりにMMを使用します。

SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");
7
NPE

それは文字列をutil dateとsql dateに変換する簡単な方法です

String startDate="12-31-2014";
SimpleDateFormat sdf1 = new SimpleDateFormat("MM-dd-yyyy");
Java.util.Date date = sdf1.parse(startDate);
Java.sql.Date sqlStartDate = new Java.sql.Date(date.getTime()); 
4
Zeeshan Akhter

MMminutesを表すため、mmを使用する必要があります。

monthパターンを生成する方法は2つあります。

SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy"); //outputs month in numeric way, 2013-02-01

SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy"); // Outputs months as follows, 2013-Feb-01

完全なコーディングスニペット:

        String startDate="01-Feb-2013"; // Input String
        SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy"); // New Pattern
        Java.util.Date date = sdf1.parse(startDate); // Returns a Date format object with the pattern
        Java.sql.Date sqlStartDate = new Java.sql.Date(date.getTime());
        System.out.println(sqlStartDate); // Outputs : 2013-02-01
2
Dulith De Costa