弹簧控制器:接受许多不同格式的日期/时间

时间:2019-04-09 08:50:19

标签: java spring spring-boot spring-mvc date-formatting

在我的控制器中,我需要支持许多不同的日期格式,例如:

2018-08-24 13:00
2018-08-24
2009-12-31 23:59:59.999 +0100
2019-04-08T16:01:09

我可以只创建一个控制器使用的pojo并以某种方式告诉spring支持多种格式吗?

data class UserRequest(
        @field:DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) // more formats?
        val start: LocalDateTime,
        // ... other fields
)

@RestController
class MyController {

    @GetMapping("/api/v1/xxx")
    fun get(request: UserRequest) = ...
}

2 个答案:

答案 0 :(得分:0)

为什么要指定格式? 不要使用LocalDateTime,而要使用DateTime或JodaTime。

答案 1 :(得分:0)

您可以使用ConversionService,下面是一个示例:https://www.baeldung.com/spring-date-parameters