Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring boot中的json日期格式_Java_Spring Boot - Fatal编程技术网

Java spring boot中的json日期格式

Java spring boot中的json日期格式,java,spring-boot,Java,Spring Boot,我使用的是SpringBoot,我有一个实体类定义如下 import org.joda.time.LocalDateTime; @Entity public class Project { @Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime") private LocalDateTime start_date; ... ... } 当该类转换为JSON时,该字段将转换为以下字符串

我使用的是SpringBoot,我有一个实体类定义如下

import org.joda.time.LocalDateTime;
@Entity
public class Project {

    @Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")
    private LocalDateTime start_date;
...
...
}
当该类转换为JSON时,该字段将转换为以下字符串表示形式

{"start_date":[2014,11,15,0,0,0,0],...., ...}
我希望json响应为
yyyy-MM-dd

我尝试了
@DateTimeFormat(iso=iso.DATE)
注释,但也没有任何帮助


有没有一种简单的方法可以将日期转换为正确的json格式?

要将日期格式化为
yyyy-MM-dd
,需要做三件事:

  • com.fasterxml.jackson.datatype:jackson数据类型joda
    上添加依赖项。从你目前得到的结果来看,我认为你可能已经有了这种依赖性
  • 通过将
    spring.Jackson.serialization.write-dates-as-timestamps:false
    添加到
    应用程序.properties
    文件中,配置Jackson不将日期格式化为时间戳
  • 使用
    @JsonFormat(pattern=“yyyy-MM-dd”)

  • 注意:您需要使用Spring Boot 1.2才能执行第2步。

    没有额外的依赖关系-我唯一要做的是:

  • 注意:以字符串对象的形式从客户端发送日期,格式为yyyy/MM/dd

  • 在Spring Boot应用程序中,使用 相同格式


  • 使用Spring Boot 2.3.5版本


    更新 另一个选项,而不是步骤2,要修改application.properties文件,请在其中添加任何日期对象的格式:


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

    您可以在中使用@JsonFormat注释,并且像这样使用所需的模式,而无需使用任何依赖项:

    @JsonFormat(pattern="yyyy-MM-dd")
    private Date created_At;
    

    非常感谢。我必须升级到Spring1.2,然后在application.yaml文件中添加属性,这对我来说很有效。不需要@JsonFormat注释您必须在application.yaml中添加哪个属性才能更改日期格式?步骤3似乎没有必要(这是默认格式)。如果你尝试任何其他格式,实际上都是无效的。我仍在调查,但它似乎甚至没有查看JsonFormat注释
    @JsonFormat(pattern="yyyy-MM-dd")
    private Date created_At;