2017-05-08 217 views
1

我正在维护在几年前使用JPARepository访问数据库时编写的代码。数据库中的creationDate列定义为datetime。如何强制JPARepository在yyyy-MM-dd中显示时间戳HH:mm:ss.000格式

代码的旧版本将从creationDate中提取值并将其显示为“creationDate”:“2015-03-27T14:44:05.897 + 0000”。我不得不修改数据库中的几个表格。在这个过程中,我将Spring Boot升级到版本1.4.3,这也带来了更新版本的Hibernate。

现在,当我运行代码(它没有改变任何日期),JSON现在显示列为“creationDate”:1427467445897。这打破了调用我的Web服务的代码。

我的代码有:

@Column(name="CreationDate", nullable=true) 
private java.sql.Timestamp creationDate; 

,并没有对getter函数没有注解。我必须做些什么才能让JSON日期再次显示为“2015-03-27T14:44:05.897 + 0000”?

回答

0

我怀疑这与弹簧数据无关,而与Jackson有关,因为存储库不显示任何东西。

@Column(name="CreationDate", nullable=true) 
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ") 
private java.sql.Timestamp creationDate; 

here得到正确的模式。

0

我发现了一个同类解决方案:

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss.SSSZ", timezone="UTC") 
public java.sql.Timestamp getCreationDate() { 
    return creationDate; 
} 

我不知道这是否注释可以在任何数据声明或吸气功能,但它工作的getter函数。

相关问题