Java 如何在spring和hibernate中从数据库中获取正确格式的日期时间?
我正在使用spring和hibernate开发一个应用程序Java 如何在spring和hibernate中从数据库中获取正确格式的日期时间?,java,spring,hibernate,rest,Java,Spring,Hibernate,Rest,我正在使用spring和hibernate开发一个应用程序 @Entity public class Category { @CreationTimestamp private java.sql.Timestamp created; //getter and setter } 用于自动保存创建的时间。它将创建的时间很好地保存在数据库中,如: 2017-03-29 12:19:16 但是当我得到json对象时,我的日期被更改为另一种格式,如 "created": 149076925600
@Entity
public class Category {
@CreationTimestamp
private java.sql.Timestamp created;
//getter and setter
}
用于自动保存创建的时间。它将创建的时间很好地保存在数据库中,如:
2017-03-29 12:19:16
但是当我得到json对象时,我的日期被更改为另一种格式,如
"created": 1490769256000
我获取类别的方法是:
public Category findCategoryById(int id) throws SQLException {
session = sessionFactory.getCurrentSession();
return ((Category)session.get(Category.class,id));
}
我怎样才能像保存在数据库中一样以相同的格式获取它
import java.sql.Date;
import java.text.SimpleDateFormat;
public class MainClass {
public static void main(String[] args) {
long long_date = 1490769256000L;
Date dt = new Date (long_date);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
System.out.println(sf.format(dt));
}
}
选中main方法,这样您就可以使用JDK8的新java.time类进行如下转换:
LocalDateTime ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(1490769256000L), ZoneId.systemDefault());
System.out.println(ldt.format(DateTimeFormatter.ISO_DATE_TIME));
您可以利用Java的@JsonFormat注释。 在这种情况下,它看起来像
@CreationTimestamp
//Json Format for your date here
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private java.sql.Timestamp created;
自1970/01/01以来的1490769256000 millseconds可以创建日期对象,可以使用SimpleDateFormat格式化我不能在使用上述方法从数据库检索时以简单日期格式获取日期吗?是的,jdbc允许您获取一个值作为日期,但json从何而来?可能重复