如何使用Spring Boot的'spring.jackson.date-format'属性?



根据当前的Springboot参考指南,如果我设置了spring.jackson.date-format属性,它将:Date format string or a fully-qualified date format class name. For instance 'yyyy-MM-dd HH:mm:ss'

但是,它与Spring Boot 1.5.3。

无法使用这种方式

展示,从此类别开始:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.Instant;
@SpringBootApplication
public class DemoApplication {
  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }
}
@RestController
class NowController{
  @GetMapping("/now")
  Instant getNow(){
    return Instant.now();
  }
}

和此src/main/resources/application.properties

spring.jackson.date-format=dd.MM.yyyy

和此build.gradle

buildscript {
    ext {
        springBootVersion = '1.5.3.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}
apply plugin: 'org.springframework.boot'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
    mavenCentral()
}
dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('com.fasterxml.jackson.datatype:jackson-datatype-jdk8')
    compile('com.fasterxml.jackson.datatype:jackson-datatype-jsr310')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

我得到以下内容:

http localhost:8080/now
HTTP/1.1 200 
Content-Type: application/json;charset=UTF-8
Date: Tue, 25 Apr 2017 22:37:58 GMT
Transfer-Encoding: chunked
"2017-04-25T22:37:58.319Z"

请注意,这不是指定格式dd.MM.yyyy。还有其他需要的spring.jackson.date-format无法记录吗?

该属性仅用于java.util.Date序列化而不是java.time.*类。

您可以使用@JsonFormat(pattern="dd.MM.yyyy")

指定的按需(每个字段(格式

创建一个实现org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer接口和设置自定义序列化的bean,用于使用更明智的格式的java.time.*类。

最新更新