2012-02-12 7 views
3
String d = request.getParameter("date"); 
SimpleDateFormat dateFormat = new SimpleDateFormat("mm-dd-yyyy"); 
java.util.Date utilDate = dateFormat.parse(d); 
java.sql.Date date = new java.sql.Date(utilDate.getTime()); 

上記のコードは、フォームから日付を取得し、準備されたステートメントで使用するためにsql.date形式にすることですが、生成される日付は間違っています2012年3月14日が2012-01-14に変換されています+00:00:00util.dateからsql.dateに間違った日付を与える

これは正しい方法ですか?

+0

「リクエスト」とは何ですか? –

+2

「mm」ではなく「MM」を使用してください。これを参照してください:http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html – home

答えて

3

DateFormatが正しくありませんmmは分、MMは月です。

よろしく

0

問題はjava.sql.Dateコンストラクタの呼び出しではありません。 utilDateを出力すると、その時点で値が既に間違っていることがわかります。

問題はSimpleDateFormat文字列です。「MM-dd-yyyy」、つまりMの大文字にする必要があります。すべての変換コードについては、javadocをご覧ください。

2

burnaによると、日付の書式が正しくありません。フォーマットの完全なリストについては、http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

ご覧のとおり、月はMMで定義されています。月 - 日 - 年の日付については、フォーマットを見てください:"MM-dd-yyyy"希望に役立ちます。

関連する問題