我正在使用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。我需要日期部分吗?如何指定日期部分?
答案 0 :(得分:3)
使用@DateTimeFormat的pattern
属性指定“时间”字段不是完全形成的ISO日期时间,而只是时间; e.g:
...
@RequestParam("starttime") @DateTimeFormat(pattern="hh:mm") Calendar starttime,
@RequestParam("endtime") @DateTimeFormat(pattern="hh:mm") Calendar endtime,
...
在您的scheduleadd()
方法中,合并Calendar
字段以获得完整格式的日期时间:
startdate.set(Calendar.HOUR_OF_DAY, starttime.get(Calendar.HOUR_OF_DAY));
startdate.set(Calendar.MINUTE, starttime.get(Calendar.MINUTE));
...