跪求:java项目部署到centos系统上面之后时间不正确
我最近做了个小项目,tomcat+mysql,数据库的时间类型是Timestamp,项目在window系统上一切正常,但是部署到centos系统上之后有的时候时间会自动增加12年,但是有的时候又是正常的,系统时间是正常的。用的session.save()执行的保存。时间是取系统时间的,代码如下:
private Integer linkid;
private String linkname;
private String linkimg;
private Timestamp credate = new Timestamp(System.currentTimeMillis());
private Integer delflag = 0;
// Constructors
/** default constructor */
public AppLink() {
}
// Property accessors
public Integer getLinkid() {
return this.linkid;
}
public void setLinkid(Integer linkid) {
this.linkid = linkid;
}
public String getLinkname() {
return this.linkname;
}
public void setLinkname(String linkname) {
this.linkname = linkname;
}
public String getLinkimg() {
return this.linkimg;
}
public void setLinkimg(String linkimg) {
this.linkimg = linkimg;
}
public Timestamp getCredate() {
return this.credate;
}
public void setCredate(Timestamp credate) {
this.credate = credate;
}
public Integer getDelflag() {
return this.delflag;
}
public void setDelflag(Integer delflag) {
this.delflag = delflag;
}
下面是执行的保存:
Session session = null;
boolean b = true;
Transaction tr = null;
try
{
session = HibernateSessionFactory.getSession();
tr = session.beginTransaction();
AppLink link = new AppLink();
link.setLinkname("name");
link.setLinkimg("img");
session.save(link);
tr.commit();
}catch(Exception e)
{
b = false;
tr.rollback();
e.printStackTrace();
}finally
{
session.close();
}
这样执行之后时间有的时候增加12年,如2010-06-30,插入数据库后会变为2022-06-30,有的时候又是正常的。
使用Date和Calendar也有这个问题。
求各位高手帮忙啊,我现在没多少积分,实在给不了了,都郁闷了好多天了。
[解决办法]
你的代码中没有日志,应该在 AppLink 实现 toString() 方法,使用 DEBUG 级别输出所有属性值。