我有一个具有 Date 属性的简单实体类。此属性对应于 MySQL 日期时间列。
@Entity
public class Entity {
@Column(name = "start_date")
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date startDate;
}
这是我编写的集成测试的样子:
java.util.Date now = new java.util.Date();
Entity entity = new Entity();
entity.setStartDate(now);
entityService.save(entity); // save entity to database
entity = entityService.get(entity.getId()); // get entity back from database
Assert.assertEquals(entity.getStartDate(), now);
我希望这两个日期相等,但事实并非如此!实际上,我有:
now.getTime() = 1350160029831
entity.getStartDate().getTime() = 1350160029000
所以两个日期之间有一个小的差距。我真的很想知道这个差距可能来自哪里。它并不总是相同的,并且每次我开始测试过程时都会有所不同。在我的数据库中,存储的日期是 2012-10-13 22:15:38.0。
我真的需要在某处清除毫秒吗?