2016-04-01 19 views
1

JavaSpring MVC web uygulamasında, Jersey REST istemcisini kullanıyorum. Sunucuya iki adet Date nesnesi göndererek veri almaya çalışıyorum. Ancak, Date nesnelerini URL'lerde kullanamıyorum. Onları string'e çevirirsem, sunucu tarafımdaki tam zaman damgasını alamayabilirim diye korkuyorum. Benim url olacaktır:REST URL'lerini kullanarak REST URL'lerini java.util.date'e nasıl geçirebilirsiniz? Jersey REST cleint

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

Ve denetleyicisi olacaktır:

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

Yani onları verilerle, bu şekilde görünecektir

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

orada Bunun için herhangi bir çözümdür. Herhangi bir yardım takdir edilecektir. Teşekkürler

cevap

1

Dizgeyi bir Dize olarak geçirebilir ve gerekli biçime dönüştürebilirsiniz. Özet kod Dize'yi alır ve java.util.Date öğesini geçirilen Dize ile aynı biçimde döndürür. aşağıda kontrol edin:

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

Sizin @ModelAttribute("returndate") String returnDate String türü olmalıdır. ve zaman parçasını değiştirerek İçin Denetleyiciniz yöntemiyle

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. 

yılında aşağıda deneyebilirsiniz:

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

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

Yani newReturnDate güncellenmiş int değerleri almak gerekir time.You (saat olacak ve dize bölümünden "11:39".

+0

Tarih date = "Per Apr 14 00:00:00 IST 2016", başlangıçta değil. –

+0

Bu yüzden eğer toString() işlevini burada kullanırsam, bu veriyi denetleyiciye nereye gönderirseniz iyi olacak –

+0

? Anyways toString() de eşdeğer String verilerini verir, kontrol edin ve görün. –