Groovy Sql 和 SimpleDateFormat 帮助
在我的数据库中,我有一个列类型:日期时间。
列数据示例:2009-02-03 19:04:23.0
我正在使用: SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); 来定义我的日期格式。
我使用 groovySQL 读取表,并为每一行添加一个新的 SampleJ 对象(映射到新表 - SampleJ)。
这是我的结论:
def sampleQuery(int dataset) {
sqlModule.eachRow("""
select b.*
from dataset a, array_data b
where dataset_id = "${dataset}"
and a.array_data_id = b.array_data_id ;""")
{
def addSample= new SampleJ(it.toRowResult())
addSample.id = "${it.array_data_id}" as int
addSample.dateCreated = dateFormat.parse("${it.date_created}")
//addSample...(more columns)
addSample.save()
}
}
当我检查我的临时表“SampleJ”时,我的所有日期与“${it.date_created}”不匹配。
所有日期都设置为“new Date()”(到闭包执行时间)。
通过调试器:
“${it.date_created}”定义为“Tue Feb 03 19:04:23 CST 2009”,对应于 (2009-02-03 19:04:23.0)。我应该有这个约会!
我该如何解决这个问题?我没有错误,只是日期错误。
有没有一种简单的方法可以在 SampleJ 中定义我的日期?
addSample.dateCreated = dateFormat.parse("${it.date_created}") 的替代方法?
In my database, I have a column type : datetime.
Column data example : 2009-02-03 19:04:23.0
I'm using : SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
to define my date format.
I'm using groovySQL to read tables and for each rows, I'm adding a new SampleJ object (mapped to a new table - SampleJ).
Here my closure :
def sampleQuery(int dataset) {
sqlModule.eachRow("""
select b.*
from dataset a, array_data b
where dataset_id = "${dataset}"
and a.array_data_id = b.array_data_id ;""")
{
def addSample= new SampleJ(it.toRowResult())
addSample.id = "${it.array_data_id}" as int
addSample.dateCreated = dateFormat.parse("${it.date_created}")
//addSample...(more columns)
addSample.save()
}
}
When I check, my temporary table "SampleJ", all my date does not match with "${it.date_created}".
All dates are set to "new Date()" (to closure execution time).
Via debugger :
"${it.date_created}" is define as "Tue Feb 03 19:04:23 CST 2009", corresponding to (2009-02-03 19:04:23.0). I should have this date !
How can I fix this issue ? I have no error, just wrong dates.
Is there an easy way to define my dates in SampleJ ?
An alternative to addSample.dateCreated = dateFormat.parse("${it.date_created}") ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
按照惯例,Grails 会将 date_created 设置为当前时间,您需要添加
到 SampleJ。
或者,将 dateCreated 重命名为其他名称。
Grails will be setting date_created to the current time by convention, you need to add
to SampleJ.
Alternatively, rename dateCreated to something else.