2013-03-09 85 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