World's longest comment. Some responses (from the top):
I would only extract it our if there was a good benefit (your second comment is a good example of such a benefit) and if it can be named so the classes and reference to the closure read well. I will have a look into it.

Regarding having a return statement outside of the catch block, I almost wrote it the way you have in your second example. I generally prefer it that way (same with leaving off an 'else' block).

I think creating the DateTimeFormat and using it on the same line is trying to do too much. I feel what I am trying to do (ie. `String` -> `Date`) *should* be able to be achieved on one line but the API does not seem to allow it in a way any more concise than this. Extracting out to a separate class will mean I can refactor a bit more, though.

I don't think it makes sense to use groovy truth here. Because if we get to the return statement in the try block then the answer is always true. Trying to use the result of the expression suggests that it might sometimes still be false which would be misleading.