gpt4 book ai didi

java - 两个 Java 日期具有不同的格式

转载 作者:行者123 更新时间:2023-12-01 15:24:52 25 4
gpt4 key购买 nike

我有一个实体类,它代表从 MySQL 带来的对象。其中一个字段是 MySQL DateTime 字段,我已通过 Hibernate 将其映射为

@Temporal(TemporalType.DATE)
private Date effdate;

但是,如果数据库中的该日期恰好为空,我想在 setter 方法中将其设置为当前日期。据我了解,Hibernate 不支持默认值,并且使用 columnDefinition 子句默认字段会将实现与供应商联系起来。

当该字段在 MySQL 中正确填充时,它看起来像第二个输出行。当我默认它时,它看起来像第一个。两个日期字段不应该看起来相同吗?如果最终不会成为问题,我不会担心,但我想了解 Date 对象如何以不同的方式显示。我知道 SimpleDateFormat 但不确定它是否在这里发挥作用,因为两者都只是日期对象。 @Temporal 注释是否对其有影响?

Tue Apr 24 14:34:10 EDT 2012  <- my default
2012-04-24 00:00:00.0 <- from MySQL

设置方法

public void setEffdate(Date effdate) {
// TODO if effdate is null use "d"

Date d = new Date();
this.effdate = effdate;

System.out.println(d);
System.out.println(this.effdate + "\n");

最佳答案

I'd like to understand how a Date object can appear differently

有两个名为Date的具体类:java.util.Datejava.sql.Date 。后者扩展了前者并将日期格式设置为“2012-04-24”。

both are just date objects

它们几乎肯定是两种不同类型的实例,这解释了行为的差异。您从 MySQL 获取的可能是 java.sql.Date,而您自己创建的默认值可能是 java.util.Date

关于java - 两个 Java 日期具有不同的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10304203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com