我处于不幸的境地,我需要在使用遗留数据的Grails应用程序中使用复合标识。这意味着我必须重写控制器中的一些操作,但是正如我所做的那样,我感到震惊的是,我无法直接使用日期参数作为动态方法的参数。为什么我需要在Grails中解析日期?
而不是仅仅做MyLegacyObj.findBySystemIdAndLogDate(params.systemId, params.logDate)
,我首先需要解析日期字符串,然后将其提供给动态方法。为了进一步复杂化,我不知道日期字符串有什么格式(直到我在输出中添加了大量log.debug()字符串)。所以现在我有一些代码看起来像这样
def formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy")
MyLegacyObj.findBySystemIdAndLogDate(params.systemId, formatter.parse(params.logDate));
这种感觉unoptimal,没有说危险(如果用的语言环境的日期格式更改?)?什么是这样做的推荐方式,我真的需要解析日期吗?