我使用的是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);
}
问题是这会返回一个String,我需要一个日期。
@Temporal(TemporalType.TIMESTAMP)
private Date creationDate;
如何完成这项工作,以便我可以完全保存日期和时间?
我知道一个简单的解决方案是将creationDate声明为String。这太糟糕了吗?
答案 0 :(得分:6)
您的问题的前提是有问题的。理想情况下,您当前的时间戳将存储在SQL数据库中,在某种日期列中,而不是文本中。由于您使用的是由JDBC支持的JPA,因此您应该只插入日期类型。因此,类似下面的内容应该有效:
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
// or maybe just
Date now = new Date();
然后,让JPA担心如何将当前时间戳列入数据库表。如果您确实需要格式化您的时间戳,如图所示,那么请在您的Java代码中担心这一点。