0

我正在使用 JPA 和 MySQl

在我的域对象中,我有一个日期字段

@Temporal(TemporalType.TIMESTAMP)
private Date lastSeenDate;

在我的 UI 中,日期以 dd-mm-yyyy 格式的字符串形式出现

我用了

final DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
final Date date = format.parse(dateString);

但对于字符串日期

06-06-2013

存储在mysql中的日期是

0011-12-04 00:00:00.0

如何将其存储到 mysql 以匹配 mysql 格式

4

3 回答 3

1

Date 类表示特定的时间瞬间,精度为毫秒。

来自:http ://docs.oracle.com/javase/6/docs/api/java/util/Date.html

日期类总是有一个时间部分。

于 2013-06-20T14:15:33.473 回答
0

根据 JavaDocs:java.util.Date分配一个 Date 对象并对其进行初始化,以便它表示分配它的时间,以最接近的毫秒为单位。

因此,它就像数据库Timestamp一样工作。它总是有一个时间分量,尽管它可能是代表午夜的全零。但是,您可以使用相同SimpleDateFormat的方法打印出java.util.Date没有时间组件的时间。

final DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
final Date utilDate = sdf.parse("2013-06-20");
System.out.println(sdf.format(utilDate)); // prints back 2013-06-20

或者,您可能想查看java.sql.Date哪个没有时间组件。

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
于 2013-06-20T14:25:43.753 回答
0

Java 中的所有日期本质上都是时间戳,因为它们代表一毫秒的时间。

我无法想到只处理日期,但你可能想看看java.util.Calendar. 如果您可以将小时、分钟、秒和毫秒都设置为零(或其他定义的时间),那么您可以更自然地处理天、月和年。这不是一个很好的产品,但效果很好。

于 2013-06-20T14:25:10.550 回答