字符串的java util日期值

字符串的java util日期值,java,date,java.util.date,Java,Date,Java.util.date,这是EJB中用于添加预订的一种方法,我试图将字符串Arr的值设置为a,因为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 boo

这是EJB中用于添加预订的一种方法,我试图将字符串Arr的值设置为a,因为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);}

您可以将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对象。

可能您没有为日期类型使用正确的格式,您必须指定正在使用的格式,为此,请使用SimpleDataFormat类

SimpleDateFormat textFormat = new SimpleDateFormat("yyyy-MM-dd");
String paramDateAsString = "2007-12-25";
Date myDate = null;

myDate = textFormat.parse(paramDateAsString);

希望能有帮助。致以最诚挚的问候。

您已经向我们展示了问题所在,但没有说明问题所在。你能解释一下吗?SimpleDataFormat格式化程序=新的SimpleDataFormat(“dd/mm/yyyy”);日期a=空;尝试{a=formatter.parse(Arr);}catch(ParseException e1){//TODO自动生成的catch块e1.printStackTrace();}booking.setarrivalDate(a);日期d=空;请尝试{d=formatter.parse(Dept);}catch(ParseException e1){//TODO自动生成的catch块e1.printStackTrace();}