2016-04-01 4 views
1

In meiner JavaSpring MVC Webanwendung verwende ich Jersey REST-Client. Ich versuche, einige Daten zu erhalten, indem ich zwei Date Objekte an den Server sende. Aber ich kann die Date-Objekte in den URLs nicht verwenden. Ich habe Angst, wenn ich sie in String umwandele, könnte ich nicht in der Lage sein, den genauen Zeitstempel auf meiner Serverseite zu bekommen. Meine URL wäre:Wie Sie java.util.date in REST-URLs mit Hilfe von Jersey REST cleint übergeben

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

Und mein Controller wäre:

@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 
} 

Gibt es eine Lösung für dieses

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

Also mit Daten in ihnen, es aussehen würde. Jede Hilfe wäre willkommen. Danke

Antwort

1

Sie können es als Zeichenfolge übergeben und in das erforderliche Format konvertieren. Nach Code nimmt die Zeichenfolge und gibt die java.util.Date im gleichen Format wie die übergebene Zeichenfolge zurück. Überprüfen Sie die folgenden:

//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); 

Ihre @ModelAttribute("returndate") String returnDate sollte von String-Typ sein. und in Ihrem Controller-Methode

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. 

Für die Zeit Teil modifizieren können Sie die folgenden versuchen:

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

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

So die int Werte newReturnDate die aktualisierte time.You bekommen müssten haben (Stunde und Minute Teil) von Ihrem String "11:39".

+0

Ich habe Date date = "Do Apr 14 00:00:00 IST 2016", es ist keine Zeichenfolge anfänglich. –

+0

also, wenn ich die ToString() -Funktion hier, wird das in Ordnung sein –

+0

von wo übergeben Sie Daten an den Controller? Anyways toString() gibt auch die entsprechenden String-Daten, überprüfen Sie das und sehen. –

Verwandte Themen