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 响应