2013-03-27 2 views
1

Это метод в EJB для добавления бронирования, я пытаюсь установить значение в значение String Arr, потому что Arr - это строка, которая получает значение формы в Servlet, и я хочу сделать то же самое для d для значения String Dept. Я использую java.util.Date, он работает для java.sql.Date, но не для java.util.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);} 
+0

Вы показали нам, где ** проблема, но не **, что ** проблема. Вы можете объяснить? – mthmulders

ответ

4

Вы можете преобразовать 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.

+0

Спасибо, в конце я использовал простой формат даты – louise

+1

SimpleDateFormat formatter = new SimpleDateFormat ("dd/mm/yyyy"); \t \t Дата a = null; \t \t try { \t \t \t a = formatter.parse (Arr); \t \t} задвижка (ParseException е1) { \t \t \t // TODO автоматическая генерация улова Блокировать \t \t \t e1.printStackTrace(); \t \t} \t \t booking.setarrivalDate (a); \t \t Дата d = null; \t \t try { \t d = formatter.parse (Dept); \t \t} задвижка (ParseException е1) { \t \t \t // TODO автоматическая генерация улова Блокировать \t \t \t e1.printStackTrace(); \t \t} – louise

5

Возможно, вы не используете правильный формат для типа Date, и вы должны указать формат, который вы используете, для этого используйте класс SimpleDateFormat.

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

myDate = textFormat.parse(paramDateAsString); 

Надеюсь, это поможет. С наилучшими пожеланиями.