作者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)
1F:推 LaPass:user_employee 必需是 Date,而不是字串 09/11 18:08
2F:→ vicioutangel:请教大大,为什麽我拉出这片段独立执行时,使用字串 09/11 19:14
3F:→ vicioutangel:套入该属性却可以执行? 09/11 19:18
4F:推 Jichang:df.format(user_employee) 改成 user_employee 09/11 22:56
5F:推 LaPass:没实际跑过,不知道原因。我是看api上写 .format()只收Date 09/12 09:29
6F:→ vicioutangel:感谢您的解答,虽然我还没试成功 -.- 09/12 11:41
7F:推 KekeMonster:parse是拿来将String转Date;而format是Date转String.. 09/13 10:28