#spring #datetime #jquery-plugins #timepicker
#весна #дата и время #jquery-плагины #указатель времени
Вопрос:
Я использую плагин jquery timepicker, и он работает нормально. Я могу выбрать время и отправить свою форму. Я использую spring MVC 3.0, и проблема возникает, когда я пытаюсь проанализировать строку, которая представляет время, как карлендар java.
Я читал об этом преобразовании даты и времени, http://www.odi.ch/prog/design/datetime.php , и это кажется довольно сложным. Может кто-нибудь, пожалуйста, дать какой-нибудь совет. Вот мой код, который зависит от spring.
@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. Нужна ли мне часть даты? Как мне указать часть даты?
Ответ №1:
Используйте pattern
атрибут @DateTimeFormat, чтобы указать, что поля «time» не являются полностью сформированными датами ISO, а просто временем; например:
...
@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));
...