java.util.Date在spring + hibernate中显示未来日期的奇怪问题

时间:2015-11-15 14:35:34

标签: java spring hibernate date spring-mvc

我正在使用Spring mvc 4 + Hibernate的小项目。

在jsp文件中我使用的是jquery DatePicker

当我使用

时,在我的实体中
@NotNull
    @Column(name = "schedule_date")
    private Date scheduleDate; 

然后在控制器中给出值

  scheduleDate = Mon Apr 11 00:00:00 IST 2016

这是未来的日期(将近5个月的未来日期),但是在使用的时候

   @NotEmpty 
    @Column(name = "schedule_date")
    private String scheduleDate; 

然后在控制器中给出值

   scheduleDate = 16/11/2015 

这是正确的价值。我不知道这里发生了什么

我应该如何解决这个问题因为我想使用Date而不是String作为scheduleDate变量的数据类型

2 个答案:

答案 0 :(得分:1)

谢谢大家的回复。我解决了。现在给出正确的日期

Mon Nov 16 00:00:00 IST 2015  

相比
Mon Apr 11 00:00:00 IST 2016

我在我的控制器中使用的代码是

@InitBinder
public void initBinder(WebDataBinder webDataBinder) {
 SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
 dateFormat.setLenient(false);
 webDataBinder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
 }

答案 1 :(得分:0)

当您看到日期类型的值时,它是toString表示。

你遇到的问题是datePicker是JavaScript,需要一个日期的字符串表示。

因此,不要直接从模型公开日期属性到视图,而是使用日期格式化程序来传递日期。