2016-04-01 14 views
1

私のJavaSpring MVC Webアプリケーションでは、私はJersey RESTクライアントを使用します。 2つのDateオブジェクトをサーバーに送信してデータを取得しようとしています。しかし、私はURLのDateオブジェクトを使用することができません。文字列に変換すれば、サーバー側で正確なタイムスタンプを取得できない場合があります。私のURLは次のようになりますJersey RESTクリアを使用してREST URLでjava.util.dateを渡す方法

RESTDomain/siteid/{siteid}/pickupdate/{pickupdate}/returndate/{returndate}/pickuplocation/{pickuplocation}/returnlocation/{returnlocation} 

ので、それらのデータと、それは次のようになります。

/siteid/5/pickupdate/Thu Apr 14 00:00:00 IST 2016/returndate/Fri Apr 29 00:01:00 IST 2016/pickuplocation/1/returnlocation/1 

そして、私のコントローラは次のようになります。

@ResponseBody 
@RequestMapping(
    value = "/siteid/{siteid}/pickupdate/{pickupdate}/returndate/{returndate}/pickuplocation/{pickuplocation}/returnlocation/{returnlocation}", 
    method = RequestMethod.GET, 
    headers = "Accept=application/json" 
) 
public CarDetailsListHB getDetails(
    @ModelAttribute("siteid") int siteId, 
    @ModelAttribute("pickuplocation") int pickUpLocation, 
    @ModelAttribute("returndate") Date returnDate, 
    @ModelAttribute("pickupdate") Date pickupDate, 
    @ModelAttribute("returnlocation") int returnLocation, 
    ModelMap model 
) { 
    //logic here 
} 

は、このためにどんな解決策はあります。どんな助けもありがとう。ありがとう

答えて

1

Stringとして渡し、必要なformat.Belowコードに変換するとStringを受け取り、渡されたStringと同じ形式でjava.util.Dateを返します。 以下のチェック:

//your date as String 
String date="Thu Apr 14 00:00:00 IST 2016"; 
      SimpleDateFormat dateformat = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy"); 
      Date returnDate=dateformat.parse(date);//returnDate will have the Date object in same format. 
      System.out.println(returnDate); 

あなた@ModelAttribute("returndate") String returnDateは、String型でなければなりません。 と時間の一部を変更するために、あなたのコントローラメソッド

SimpleDateFormat dateformat = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy"); 
       Date newReturnDate=dateformat.parse(returnDate);//newReturnDate will have the Date object in same format. 

に、あなたは以下試すことができます。

Calendar cal = Calendar.getInstance(); 
      cal.setTime(newReturnDate); 

      cal.set(Calendar.HOUR,11); 
      cal.set(Calendar.MINUTE,39); 
      newReturnDate=cal.getTime(); 
      System.out.println(newReturnDate); 

のでnewReturnDateが更新int型の値を取得する必要がありますtime.You(時間を持つことになりますし、あなたの弦から "11:39"分)。

+0

私はDate date = "Thu Apr 14 00:00:00 IST 2016"という文字列を最初に持っています。 –

+0

ここでtoString()関数を使用すると、コントローラにデータを渡しているところからは –

+0

のようになりますか?とにかくtoString()は同等のStringデータを返します。 –

関連する問題