时间字符串到日历

时间:2011-10-24 20:46:52

标签: spring datetime jquery-plugins timepicker

我正在使用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。我需要日期部分吗?如何指定日期部分?

1 个答案:

答案 0 :(得分:3)

使用@DateTimeFormatpattern属性指定“时间”字段不是完全形成的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));
...