我将仅在数据库中存储year
值并检索它。
这是我的域名(POJO
)
@Entity
public class Publisher {
public Publisher(..., Date establishDate) {
//assign other variables
this.setEstablishDate(establishDate);
}
@NotNull
private Date establishDate;
...
}
这是我的DTO:
@NotNull
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy")
private Long establish_date;
在这里,我正在创建一个新的发布者:
new Publisher(..., new Date(this.establish_date));
我为1370
发送了一个价值为establish_date
的json(用于发布新发布商),但在数据库中显示为:1970-01-01 03:30:01
为什么?
当我获得Publisher
时,它显示establish_date
为1000
!
有什么问题?
答案 0 :(得分:1)
您使用的是错误的构造函数。参数指定自1970年以来的毫秒 - 而不是一年:Date(long)您可以使用正确的构造函数:Date(int, int, int)
请注意,大多数Date API都已弃用。还有更好的替代方案,例如Calendar
和DateTime
。由于您只存储年份,因此您也可以使用普通整数。这会更容易。