2011-10-24 2 views
1

Я использую плагин jquery timepicker, и он отлично работает. Я могу выбрать время и отправить свою форму. Я использую Spring MVC 3.0, и проблема возникает, когда я пытаюсь разобрать строку, представляющую время, как java carlendar.Временная строка для календаря

Я читаю эту дату/время преобразования, http://www.odi.ch/prog/design/datetime.php, и кажется довольно сложным. Может кто-то, пожалуйста, предложите какую-то форму совета. Вот мой код, характерный для весны.

@RequestMapping(value = "scheduleadd", method = RequestMethod.POST) 
public String scheduleadd( @Valid Schedule schedule, BindingResult bindingResult, 
          @RequestParam("startdate") @org.springframework.format.annotation.DateTimeFormat(iso=ISO.DATE) java.util.Calendar startdate, 
          @RequestParam("enddate") @org.springframework.format.annotation.DateTimeFormat(iso=ISO.DATE) java.util.Calendar enddate, 
          @RequestParam("starttime") @org.springframework.format.annotation.DateTimeFormat(iso=ISO.NONE) java.util.Calendar starttime, 
          @RequestParam("endtime") @org.springframework.format.annotation.DateTimeFormat(iso=ISO.NONE) java.util.Calendar endtime, 
          @RequestParam("moduleInstanceId") Long mId, Model uiModel, HttpServletRequest httpServletRequest) { //my stuff goes here} 

Как вы можете видеть, что я пытаюсь разобрать строку вроде «09:30» как Java Carlendar. Мне нужна дата? Как указать дату?

ответ

3

Использовать атрибут pattern@DateTimeFormat, чтобы указать, что поля «время» не являются полностью сформированными ISO datetime, а скорее всего раз; например .:

... 
@RequestParam("starttime") @DateTimeFormat(pattern="hh:mm") Calendar starttime, 
@RequestParam("endtime") @DateTimeFormat(pattern="hh:mm") Calendar endtime, 
... 

И в методе scheduleadd() смешайте Calendar поля, чтобы получить полностью сформированную DateTime:

startdate.set(Calendar.HOUR_OF_DAY, starttime.get(Calendar.HOUR_OF_DAY)); 
startdate.set(Calendar.MINUTE, starttime.get(Calendar.MINUTE)); 
...