9

根据Current SpringBoot Reference Guide如果我设置了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的'spring.jackson.date-format'属性?

但是,它不适用于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不按记录工作?

回答

3

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

你可以有(每场)@JsonFormat(pattern="dd.MM.yyyy")

创建一个实现在ObjectMapper的org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer界面和设置自定义序列的使用更明智的格式java.time.*班豆指定格式需求。

+0

太好了。但是,如果我只使用java.util.Date(或java.sql.Date),我该如何使用它? – MiguelMunoz

相关问题