当前位置: 首页 > 知识库问答 >
问题:

Java.time的Spring DateTimeFormat配置

严玉泽
2023-03-14

我正在开发一个Spring WebMvc(不是Spring Boot)项目,该项目使用纯Java配置来设置bean。我很难让Spring/Jackson使用java.time(jsr310)对象(如LocalDateTime)尊重@DateTimeFormat注释。

类路径上有jackson-datatype-jsr310和jackson-databind jars(版本2.7.4),以及用于基本webmvc应用程序spring-context和spring-webmvc(版本4.3.0.release)的相关spring jars

下面是我的相关配置类:

@Configuration
@ComponentScan({"com.example.myapp"})
public class WebAppConfig extends WebMvcConfigurationSupport {
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        ObjectMapper mapper = Jackson2ObjectMapperBuilder
            .json()
            .indentOutput(true)
            .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
            .findModulesViaServiceLoader(true)
            .build();

        converters.add(new MappingJackson2HttpMessageConverter(mapper));

        super.addDefaultHttpMessageConverters(converters);
    }
}

共有1个答案

潘智刚
2023-03-14

@jsonformat是Jackson注释;@DateTimeFormat是一个Spring注释。

@jsonformat将控制将LocalDateTime序列化为JSON期间的格式设置。

Jackson不知道Spring的@DateTimeFormat,它用于控制Spring中bean在JSP视图中呈现时的格式。

 类似资料:
  • 主要内容:面向读者,先提条件,问题反馈Java 8在包下引入了新的和Time API。本教程参考将介绍包中提供的简单实用的方法。 面向读者 此参考资料是为初学者准备的,以帮助他们理解与java.time包中相关可用的所有方法相关的基本功能。 先提条件 在开始使用本参考中给出的各种类型的示例进行练习之前,假设您已经了解基本的Java编程。 问题反馈 我们不能保证您在学习此包教程的过程中不会遇到任何问题。本教程中的讲解,示例和代码等只是根

  • 我正在尝试替换org.joda。现在是java时代。时间在我们的应用程序中。从那时起,我们使用的是org.joda。在时间包中,我们有一个带有org.joda.time.period的ISO8601格式的period。 由于P1Y、P1M、P1W、P1D等格式已存储在我们的系统中,因此在java.time.中寻找相同内容的格式化程序 java.time.Duration支持,小时,分钟和天。 但是

  • 如果偏移量为4位(-05:00),我可以使用:,但这不适用于3位。 有什么想法吗?

  • 问题内容: Joda Time有一个不错的DateTimeUtils.setCurrentMillisFixed()来模拟时间。 在测试中非常实用。 Java 8的java.time API 是否具有等效功能? 问题答案: 最接近的东西是物体。您可以使用任意时间(或从系统当前时间)创建Clock对象。所有date.time对象都有重载的方法,这些方法采用时钟对象代替当前时间。因此,您可以使用依赖项

  • 问题内容: 我有一个对象,或一个对象。如何在java.time框架中将其转换为正确的类型? 我听说我们现在应该使用类型来做大部分业务逻辑。当使用尚未为java.time更新的旧代码时,我需要能够来回转换。什么类型映射到或? 问题答案: 避免使用旧的日期时间类 老式的日期时间类(包括,和)已被证明设计不良,混乱且麻烦。尽可能避免它们。但是,当你必须与这些旧类型进行互操作时,可以在新旧之间进行转换。

  • 我有一个没有Spring Boot的项目,但它使用了一些Spring模块,如“spring data”和“spring data rest”。 我对java.time.*的序列化有一些问题领域。我找到了一些类似这样的教程,但即使我添加了以下依赖项 以及我的RepositoryRestConfigurerAdapter中的以下代码 } 我对java.time字段的实际回答如下 "rateDate"