首页 > 解决方案 > 立即获取日期和时间

问题描述

我正在使用 JPA,我想以这种格式存储日期dd/MM/yyyy HH:mm:ss

所以我创建了一个函数

public static String getNowDate() {
    Date date = new Date();
    final DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

    return sdf.format(date);
}

问题是这会返回一个字符串,我需要一个日期。

@Temporal(TemporalType.TIMESTAMP)
private Date creationDate;

我该如何完成这项工作,以便我可以完全保存日期和时间?

我知道一个简单的解决方案是将creationDate 声明为String。这太糟糕了吗?

标签: javadatetimejpa

解决方案


你的问题的前提有问题。理想情况下,您当前的时间戳将存储在 SQL 数据库中,在某种日期列中,而不是作为文本。由于您使用的是由 JDBC 支持的 JPA,因此您应该只插入一个日期类型。所以,类似下面的东西应该可以工作:

Timestamp timestamp = new Timestamp(System.currentTimeMillis());
// or maybe just
Date now = new Date();

然后,让 JPA 担心如何将当前时间戳记入您的数据库表中。如果您真的需要按所示格式化您的时间戳,那么请在您的 Java 代码中的某个地方担心这一点。


推荐阅读