代码之家  ›  专栏  ›  技术社区  ›  user903772

Grails插入不带时间的日期

  •  2
  • user903772  · 技术社区  · 13 年前

    我的域中有一个日期属性,我想在没有时间的情况下插入MySQL。获取异常无法将字符串强制转换为 date.Exception 消息:

    无法将类为java.lang.String的对象2013-03-09强制转换为类java.util.Date

    我想在没有时间的情况下插入数据库。

    域:

    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 
    
    3 回复  |  直到 13 年前
        1
  •  3
  •   Henk    12 年前
    day.date = new Date().clearTime()
    

    clearTime()将时间部分重置为00:00:00

        2
  •  1
  •   Bart    13 年前

    我想你不想看 Date.parse http://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)
    
        3
  •  1
  •   Yuri    5 年前

    你应该使用 java.sql.Date 而不是 java.util.Date .

    这个 java.sql.日期 类对应于SQL DATE 这意味着它存储年、月和天,而忽略小时、分钟、秒和毫秒。此外 java.sql.日期 与时区无关。

    有关两者的详细解释,请参阅 java.util.Date vs java.sql.Date