为什么我需要在Grails中解析日期?

时间:2011-04-13 12:46:01

标签: date grails parameters formatting action

我处于不幸的位置,我需要在Grails应用程序中使用复合ID,我将使用旧数据。这意味着我必须覆盖控制器中的一些操作,但是当我这样做时,我感到震惊的是我不能直接使用日期参数作为动态方法的参数。

我不是只做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));

这感觉不够理想,不要说危险(如果日期格式随语言环境而变化怎么办?)?建议的方法是什么,我真的需要解析日期吗?

1 个答案:

答案 0 :(得分:1)

Date是一个非常复杂的对象,而params只是String s,所以Date部分提交。在分配x.properties = params时,它会从部件中“神奇地”组装。

如果您向其添加Date字段,

Command object将为您完成工作。

它与方法的动态或静态调用无关。呈现Date编辑器的GSP也可能会干扰。