【问题标题】:How to convert "2017-04-03T00:00:00" date format to "2017-04-02 03:30:00+05:30" in java?如何在java中将“2017-04-03T00:00:00”日期格式转换为“2017-04-02 03:30:00+05:30”?
【发布时间】:2017-04-27 09:15:58
【问题描述】:

我的应用程序将日期生成为 "2017-04-03T00:00:00" 格式,我正在尝试使用

将其保存在 Postgres DB 中

“2017-04-03 00:00:00+05:30”

。使用 sql 查询,日期会正确保存在数据库中。但是当我尝试使用 GROM save() 方法保存它时,它显示

“在字段 'startdate' 上:拒绝值 [2017-04-03T00:00:00]”

我正在使用org.grails.datastore.gorm.GormInstanceApi.save() API。这是我的代码 sn-p:

def update(name, startdate, enddate) {
    TestExt mydomain = new TestExt (name: name, startdate:startdate, enddate:enddate)
    if(mydomain.hasErrors() || !mydomain.save(flush:true)){
        println mydomain.errors
    }
    // TestExt.executeUpdate("update TestExt set name='"+name +"', start_date='"+startdate +"', end_date='"+enddate +"' where id=1")
}

谁能帮我解决这个问题? 非常感谢!

【问题讨论】:

  • 什么是GROM save()
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建minimal reproducible example
  • 当您在此处发布您的代码时,我们能给您的唯一答案是:学习使用调试器。我们只能对我们看到的代码提供帮助。
  • 我正在使用 org.grails.datastore.gorm.GormInstanceApi.save() API。
  • def update(name, startdate, enddate) { TestExt mydomain = new TestExt (name: name, startdate:startdate, enddate:enddate) if(mydomain.hasErrors() || !mydomain.save( flush:true)){ println mydomain.errors } // TestExt.executeUpdate("update TestExt set name='"+name +"', start_date='"+startdate +"', end_date='"+enddate +"'其中 id=1") }

标签: java date grails


【解决方案1】:

我假设您尝试插入此值的字段是 TIMESTAMP。你试过投吗?

SELECT CAST('2017-04-03T00:05:00' AS TIMESTAMP);

【讨论】:

  • 这里的问题实际上是用户定义了def update(name, startdate, enddate) 没有定义可以是什么开始或结束日期,因此它将接受字符串或日期。实际问题是传入的日期参数是字符串格式,需要是日期格式。解决方案是设置您的默认日期格式尝试使用谷歌搜索该术语,整个问题的答案就在那里。对不起,不是@jim,而是@mam
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-22
  • 2013-03-23
  • 1970-01-01
  • 1970-01-01
  • 2019-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多