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

标签 date grails parameters formatting action

我很不幸,我需要在使用旧数据的Grails应用程序中使用复合ID。这意味着我必须重写 Controller 中的某些操作,但是当我这样做时,我为无法将date参数直接用作动态方法的参数而感到震惊。

我首先需要解析日期字符串,然后再将其提供给动态方法,而不仅仅是做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));

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

最佳答案

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

如果您向其添加Date字段,Command object将为您完成工作。

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

关于date - 为什么我需要在Grails中解析日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5649439/

相关文章:

powershell - 从 CMD 文件运行 PowerShell 脚本 - 参数类型错误

date - 获取当前语言环境的日期格式

javascript - 为什么日期区域设置 'en-CA' 返回 M/d/yyyy 而不是 yyyy-MM-dd?

sorting - Groovy自定义排序

grails - 如何从Grails中的 Controller 类保存外键?

grails - 如何为同一实例上的不同用户授予不同的权限

java - 在maven插件项目外设置一个参数值

python - SQLite Date 类型仅接受 Python 日期对象作为输入

Django 表单 "Enter a valid date."

python - GridSearch 最佳模型 : Save and load parameters