我正在使用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);
但是对于字符串日期
2013年6月6日
存储在mysql中的日期是
0011-12-04 00:00:00.0
如何将其存储到mysql中以匹配mysql格式
答案 0 :(得分:1)
类Date表示特定的时刻,以毫秒为单位 精度。
来自:http://docs.oracle.com/javase/6/docs/api/java/util/Date.html
日期类始终具有时间组件。
答案 1 :(得分:0)
Java中的所有日期基本上都是时间戳,因为它们代表了一毫秒的时间。
我无法想象只处理日期,但您可能想看看java.util.Calendar
。如果您可以将小时,分钟,秒和毫秒全部设置为零(或其他定义的时间),则可以更自然地使用数天,数月和数年。这不是一个很好的产品,但它运作良好。
答案 2 :(得分:0)
根据JavaDocs: java.util.Date 分配一个Date对象并初始化它,以便它表示分配它的时间,测量到最近的毫秒。
因此,它的工作方式类似于数据库时间戳。它总是会有一个时间组件,尽管它可能都是代表午夜的零。但是,您可以使用相同的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());