2

これは、予約を追加するためのEJBのメソッドです。Arrはサーブレットでフォーム値を取得する文字列であり、dからString Deptの値まで同じことを実行したいので、StringArrの値を設定しようとしています。 。を使用しています。では機能しますが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);}
4

2 に答える 2

5

おそらく、Dateタイプに正しい形式を使用しておらず、使用している形式を指定する必要があります。この目的には、SimpleDateFormatクラスを使用してください。

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

myDate = textFormat.parse(paramDateAsString);

それが役に立てば幸い。よろしくお願いします。

于 2013-03-27T12:13:18.550 に答える
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オブジェクトを初期化します。

于 2013-03-27T12:11:54.710 に答える