gpt4 book ai didi

spring - 将 Spring MVC 中的默认/全局日期格式设置为 ISO 8601

转载 作者:行者123 更新时间:2023-12-04 01:14:55 25 4
gpt4 key购买 nike

我有一个简单的 Spring Controller :

@RequestMapping(value="", method=RequestMethod.GET)
public void search(MyDTO dto) {
// ...
}

MyDTO :
public class MyDTO {
private DateTime date;
public DateTime getDate() { return date; }
public void setDate(DateTime date) { this.date = date; }
}

我实际上可以使用我的本地日期格式调用 Controller 方法: 03.10.2013 01:00 ,例如 GET http://localhost:8080/test?date=03.10.2013 01:00
但我想要应用广泛的 ISO 8601 日期格式,例如: 2007-03-01T13:00:00Z
如果我使用 ISO 格式,则会出现以下错误:
Failed to convert property value of type 'java.lang.String' to required type
'org.joda.time.DateTime' for property 'date'; nested exception is
org.springframework.core.convert.ConversionFailedException: Failed to convert
from type java.lang.String to type org.joda.time.DateTime for value
'2013-09-25T23:05:18.000+02:00'; nested exception is
java.lang.IllegalArgumentException: Invalid format:
"2013-09-25T23:05:18.000+02:00" is malformed at "13-09-25T23:05:18.000+02:00"
java.util.Date一定有办法改以及所有那些 Joda 日期和时间容器。

我刚刚找到了 addFormatters(FormatterRegistry registry)内的方法 WebMvcConfigurationSupport ,但我真的不知道如何使用它。

最佳答案

我让它为 Joda Time 工作:

public class WebConfig extends WebMvcConfigurationSupport {
@Override
public void addFormatters(FormatterRegistry registry) {
JodaTimeFormatterRegistrar j = new JodaTimeFormatterRegistrar();
j.setUseIsoFormat(true);
j.registerFormatters(registry);
}
}

我希望有一种更简单的方法可以为所有可能的 Date 实现完成这项工作。

最初发布为 OP 对问题的编辑, Benjamin M

关于spring - 将 Spring MVC 中的默认/全局日期格式设置为 ISO 8601,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com