如何在spring和hibernate中从数据库获取时,如何以正确的格式获取我的日期时间?

时间:2017-05-02 06:13:50

标签: 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": 1490769256000

获取类别的方法是:

public Category findCategoryById(int id) throws SQLException {
    session = sessionFactory.getCurrentSession();
    return ((Category)session.get(Category.class,id));
}

如何以与保存在数据库中相同的格式获取它。

3 个答案:

答案 0 :(得分:1)

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));
    }

}

检查主要方法,通过这种方式你可以

答案 1 :(得分:0)

您可以使用JDK8的新java.time类进行转换,如下所示:

LocalDateTime ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(1490769256000L), ZoneId.systemDefault());
System.out.println(ldt.format(DateTimeFormatter.ISO_DATE_TIME));

答案 2 :(得分:0)

您可以利用Java的@JsonFormat Annotation。 在这种情况下,它看起来像

@CreationTimestamp
//Json Format for your date here
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private java.sql.Timestamp created;