2009-10-16 96 views
0

我需要一些关于我遇到困惑的小小帮助。因为我来自C#.NET,所以我希望java有类似于C#DateTime的东西。 虽然我设法创建一个帮助器方法来将日期的字符串表示形式转换为日期对象,如“2009-10-16 11:14:34”。 这里是方法java中的日期时间和休眠时的默认日期时间映射

public static Date convertToDateTime(String stringDate) { 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    Date date; 
    try { 
     date = df.parse(stringDate); 
    } catch(ParseException e){ 
     e.printStackTrace(); 
    } 
    return date; 
} 

现在我只想现在坚持(现在我的意思是日期,如实际为准)像新的Date(),并在数据库中该日期有相同的表示YYYY-MM-DD HH:MM:秒。除非我没有得到基本的东西

因为我使用休眠是由于映射文件?如果是这样,我有2个问题 1如何映射我的属性,以便新日期将持续这种格式yyyy-MM-dd HH:mm:s 2如何有一个默认的日期时间映射,如果该属性为null它仍将在YYYY-MM-DD HH被persited:MM:s格式 感谢您阅读

+0

什么字段类型是在数据库中的字段?通常情况下,您将在数据库中有一个Date字段,并且不会有与其关联的任何特定格式。 – tschaible 2009-10-16 11:40:27

+0

它现在是一个日期字段。但是你对sfussenegger建议的sql类型有什么建议 – 2009-10-16 11:50:56

回答

1

你不想被存储在您日期的任何格式,你希望它们被存储为一个日期。

这种映射定义可能工作(不知道的default=now()部分):

<property name="foo" not-null="false"> 
    <column name="foo" default="now()" not-null="true" sql-type="datetime" /> 
</property> 
+0

嗨感谢我使用hibernate 3.3.2.GA的答案,并且我没有那里有sql-type属性和价值像datime。 我在这里有时间,日期,时间戳,日历,calendar_date和它们的前缀imm_作为类型 m – 2009-10-16 12:20:09

+0

该类型取决于您要存储在数据库中的内容。只有日期,使用type =“数据,只有时间,使用”时间“,outherwise使用type =”timestamp“ – Salandur 2009-10-16 12:48:42

+0

非常感谢。其实我已经尝试sfussenegger建议,一切工程,除了默认值.Salandur你的工作,以及所以现在我需要如何做默认值 – 2009-10-16 13:28:56