作者vicioutangel (司馬 青)
看板java
標題[問題] 關於date的問題
時間Tue Sep 11 15:37:17 2012
各位大大好,小弟又有問題來請教大家了
小弟目前在學jsp跟servlet,目前嘗試著要寫註冊系統
但是卻卡在一個關於date的問題,希望各位大大能為我解惑
小弟有把類別裡的程式貼到main裡跑,執行結果也如我所預期的一樣
但是套到類別,要寫入資料庫時,卻會發生錯誤訊息
而且我取的是轉為date之前的"字串",並非取date
卻給我這個錯誤,讓我頭痛了兩天 -.-
錯誤訊息為
java.lang.IllegalArgumentException: Cannot format given Object as a Date
以下為jsp片段程式
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="member" class="com.kamikaze.Member" scope="session"/>
<form action="regist">
<label>
任用日期: <input type="text" name="user_employee" id="" />
</label>
以下為Servlet片段程式
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String user_employee = request.getParameter("user_employee");
Member member = new Member(user_employee);
if(member.check()){ <---eclipse指出這有錯
response.sendRedirect("regist.jsp");
}else{
HttpSession session = request.getSession();
session.setAttribute("member", member);
response.sendRedirect("regist.jsp");
}
}
以下為Member類別片段程式
public class Member {
String user_employee;
}
public Member() {
}
public Member(String user_employee){
this.user_employee = user_employee;
}
public boolean check() {
try {
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date sysdate = df.parse(df.format(date));
Date inpdate = df.parse(df.format(user_employee)); <--eclipse指
出這句有錯
if (!user_employee.matches("'#^((19|20)?[0-9]{2}
[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01]))*$#'")) {
errors.add("日期格式需為西元 年、月、日");
passed = false;
}
if (inpdate.before(sysdate)) {
System.out.println("日期不能在今天之前");
passed = false;
}
} catch (ParseException e) {
e.printStackTrace();
}
public String getuser_employee() {
return user_employee;
}
public void setuser_employee(String user_employee) {
this.user_employee = user_employee;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.176.108.111
※ 編輯: vicioutangel 來自: 180.176.108.111 (09/11 16:39)
推 LaPass:user_employee 必需是 Date,而不是字串 09/11 18:08
→ vicioutangel:請教大大,為什麼我拉出這片段獨立執行時,使用字串 09/11 19:14
→ vicioutangel:套入該屬性卻可以執行? 09/11 19:18
推 Jichang:df.format(user_employee) 改成 user_employee 09/11 22:56
推 LaPass:沒實際跑過,不知道原因。我是看api上寫 .format()只收Date 09/12 09:29
→ vicioutangel:感謝您的解答,雖然我還沒試成功 -.- 09/12 11:41
推 KekeMonster:parse是拿來將String轉Date;而format是Date轉String.. 09/13 10:28