存储当地年份的日期

时间:2016-05-09 06:09:11

标签: java date

我将仅在数据库中存储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_date1000

有什么问题?

1 个答案:

答案 0 :(得分:1)

您使用的是错误的构造函数。参数指定自1970年以来的毫秒 - 而不是一年:Date(long)您可以使用正确的构造函数:Date(int, int, int)

请注意,大多数Date API都已弃用。还有更好的替代方案,例如CalendarDateTime。由于您只存储年份,因此您也可以使用普通整数。这会更容易。