SpringBoot:从request parameter中转换Data与Time

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot:从request parameter中转换Data与Time相关的知识,希望对你有一定的参考价值。

参考技术A

对于@Controller/@RestController注解标记的类方法中,如何将request parameter接收到的参数转换为LocalDate等时间类型的变量,如下示例会做一个简单的说明:

这样的写法我们都会觉得功能能够正常运行,实际情况并非如此,在真正运行过程中,访问api/data与api/datatime后台都会报错,报错信息如下所示:

这个错误提示比较明确,value \'2021-12-13\'对应的String字符串不能直接转换为java.time.LocalDate,那我们应该如何解决这个问题呢?

在java doc中此注解描述为:Declares that a field or method parameter should be formatted as a date or time,用于声明一个字段或者方法参数应该被格式化为日期或者时间。这么一看@DateTimeFormat能够应用于上述我们使用的场景,那么我们就先来试试。

demo1

使用默认的 ISO 8601 格式化 (yyyy-MM-dd),我们使用@DateTimeFormat注解并设置其属性为DateTimeFormat.ISO.DATE。

demo2

使用自定义的日期格式( dd.MM.yyyy ),我们使用@DateTimeFormat注解并设置自定义属性pattern的值为 dd.MM.yyyy

demo3

如果我们想要用ISO 8601时间格式为:yyyy-MM-dd\'T\' HH:mm:ss.SSSZ ,我们需要使用@DateTimeFormat注解,并设置iso属性值为DateTimeFormat.ISO.DATE_TIME

demo4

如果我们想用自定义的时间格式: dd.MM.yyyy HH:mm:ss.SSSZ ,我们需要使用@DateTimeFormat注解,并设置pattern 属性值为 dd.MM.yyyy HH:mm:ss.SSSZ

总结:

引用链接: https://www.petrikainulainen.net/programming/spring-framework/spring-from-the-trenches-parsing-date-and-time-information-from-a-request-parameter/

以上是关于SpringBoot:从request parameter中转换Data与Time的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Springboot 获取 http request和 http response 的几种方式

无法从使用 Azure SAML SSO 配置的本地应用程序中的 C# 中的 Request.Params 获取 SAML 响应

spring和springboot常用注解总结

spring和springboot常用注解总结

细说 Request[]与Request.Params[]

Request.Params 和 Request.Form 啥时候不同?