Spring mvc 提交时间 String Date 的转换问题

来源:互联网 发布:功能测试软件有哪些 编辑:程序博客网 时间:2024/06/04 19:26

在使用Spring MVC 时,前台传入的startTime String类型; 但是我们后台的 qo 的startTime 的类型是Date类型。

而Spring 不会自动给我们转换,就会报错 java.lang.String convert java.util.Date  java.lang.IllegalArgumentException。


当然解决办法有很多;

1,麻烦的方法

再声明字串 专门接收这些字段 后台再转换处理。

2.简单的办法

使用DateTimeFormat注解 配合joda-time使用

首次先POM.xml 引入 joda-time

<!-- https://mvnrepository.com/artifact/joda-time/joda-time --><dependency>    <groupId>joda-time</groupId>    <artifactId>joda-time</artifactId>    <version>1.3</version></dependency>


然后在你要po字段上添加此注解。

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;


然后就可以了。匹配前台传入的  “2016-7-13 12:23:59“ 字符串。

当然DateTimeFormat 本身也有很多格式

比如支持ISO enum,可以看源码了解更多。


比较喜欢使用pattern,定制性高。


当使用pattern时的一个坑。

hh 是12小时制 HH是24小时制。


附时间格式:

 Symbol  Meaning                      Presentation  Examples ------  -------                      ------------  ------- G       era                          text          AD C       century of era (>=0)         number        20 Y       year of era (>=0)            year          1996 x       weekyear                     year          1996 w       week of weekyear             number        27 e       day of week                  number        2 E       day of week                  text          Tuesday; Tue y       year                         year          1996 D       day of year                  number        189 M       month of year                month         July; Jul; 07 d       day of month                 number        10 a       halfday of day               text          PM K       hour of halfday (0~11)       number        0 h       clockhour of halfday (1~12)  number        12 H       hour of day (0~23)           number        0 k       clockhour of day (1~24)      number        24 m       minute of hour               number        30 s       second of minute             number        55 S       fraction of second           millis        978 z       time zone                    text          Pacific Standard Time; PST Z       time zone offset/id          zone          -0800; -08:00; America/Los_Angeles '       escape for text              delimiter ''      single quote                 literal       '


http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html



0 0
原创粉丝点击