2013-03-09 59 views
1

我在我的域中有一个日期属性,我想插入到MySQL没有时间。获取异常无法将字符串转换为date.Exception消息:无法将类'java.lang.String'的对象'2013-03-09'转换为类'java.util.Date'我想在没有时间的情况下插入数据库。Grails插入日期没有时间

class Day { 


Date date 

     static mappings = { 
     table name:'Days' 

       date type: 'date' 


    } 

控制器

def today = new Date() 
def ymdFmt = new java.text.SimpleDateFormat("yyyy-MM-dd") 
Date dateYmd = ymdFmt.format(today) 



     day.date =dateYmd 
+1

检查http://stackoverflow.com/questions/4856545/grails-非法参数为java-sql-date。 – a1ex07 2013-03-09 14:25:42

+0

当插入数据库时​​,它的2013-03-09 00:00:00我不想要00:00:00 – user903772 2013-03-09 14:45:51

+0

然后在数据库中使用'DATE'类型,而不是'DATETIME'。 – a1ex07 2013-03-09 14:48:35

回答

1

我想你wan't看Date.parsehttp://groovy.codehaus.org/groovy-jdk/java/util/Date.html#parse(java.lang.String,java.lang.String中)

您可以分析,例如日期。

String stringDate = '28/09/2010' 
Date date = new Date().parse('d/M/yyyy', stringDate) 
+0

当插入数据库时​​,它是2013 -03-09 00:00:00我不想要00:00:00 – user903772 2013-03-09 14:45:30

+3

不知道有没有办法绕过它。但基本上没关系,因为你可以忽略时间。这只是一个小细节。 – Bart 2013-03-09 14:51:16

+0

当然这很重要..?通常对于Web应用程序,日期(例如2013-03-09)将作为UTC持续保存。如果该日期随后被我的应用程序读取并显示给UTC-1和UTC + 1时区中的用户,则他们将分别看到日期为2013-03-08和2013-03-09。 – rcgeorge23 2015-06-29 19:14:52

1

您应该使用的,而不是java.util.Date java.sql.Date
java.sql.Date对应于SQL DATE,这意味着它存储年,月,天,而小时,分钟,秒和毫秒被忽略。另外sql.Date不绑定到时区。
对于一个很好的解释关于这两个看java.util.Date vs java.sql.Date

2
day.date = new Date().clearTime() 

clearTime()将时间部分复位到00:00:00