这是EJB中用于添加预订的方法,我试图将a设置为字符串Arr的值,因为Arr是一个字符串,它在Servlet中获得表单值,我想为字符串Dept的d到值做同样的事情。我使用java.util.Date
,它适用于java.sql.Date
,但不适用于java.util.Date
。
public void addBooking(String Arr, String Dept, String username, String roomnum){
BookingTableClass booking = new BookingTableClass();
Date a= Date.valueOf(Arr);//the problem is in these four lines
booking.setarrivalDate(a);
Date d= Date.valueOf(Dept);
booking.setdeptDate(d);
booking.setCustomerUsername(username);
Long rmnum = Long.valueOf(roomnum);
booking.setRoomNumber(rmnum);}
也许你没有为Date类型使用正确的格式,你必须指定你正在使用的格式,为此使用SimpleDateFormat类。
SimpleDateFormat textFormat = new SimpleDateFormat("yyyy-MM-dd");
String paramDateAsString = "2007-12-25";
Date myDate = null;
myDate = textFormat.parse(paramDateAsString);
希望有帮助。致以最亲切的问候。
您可以像这样将java.util.Date转换为java.sql.Date对象:
java.util.Date now = new java.util.Date();
java.sql.Date date = new java.sql.Date(now.getTime());
也就是说,以毫秒为单位获得java.util.Date的等效值,然后使用该值初始化java.sql.Date对象。