0

次の方法で、JSP の Prepared Statement を使用して、ユーザーが入力した YYYY-MM-DD 形式の日付をデータベースに挿入したいと考えています。

 SimpleDateFormat reFormat = new SimpleDateFormat("YYYY-MM-DD") 
 Date activityDate = reFormat.parse(request.getParameter("activity_date"));
 java.sql.Date sqlDate = new java.sql.Date(activityDate.getTime());

 String query = "INSERT INTO schedule(login_name,activity_date) VALUES (?, ?)";
 PreparedStatement stmt = connection.prepareStatement(query);
 stmt.setString(1,request.getParameter("name_of_user"));
 stmt.setDate(2,sqlDate);
 stmt.executeUpdate();

ただし、ユーザーがデータベースにたとえば 2012-06-22 と入力すると、間違った日付 2012-06-22 ではなく 2012-01-01 が保存されます。

誰が問題が何であるか知っていますか??

4

1 に答える 1

2

正しい形式はyyyy-MM-dd. Yは何も意味せず、D(月の日ではなく) 日を意味します。

于 2012-06-28T21:41:58.447 に答える