К сожалению, мне нужно использовать составной идентификатор в приложении 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));
Это кажется неоптимальным, если не сказать опасным (что если формат даты меняется в зависимости от локали?)? Каков был бы рекомендуемый способ сделать это, и мне действительно нужно анализировать даты вообще?