К сожалению, я не верю, что у Joda Time есть такие возможности. Было бы неплохо иметь метод tryParseDateTime, но он не существует.
Я предлагаю вам выделить это поведение в свой собственный класс (тот, который берет список шаблонов и будет пробовать каждый по очереди), чтобы уродство было только в одном месте. Если это вызывает проблемы с производительностью, вы можете попробовать использовать некоторые эвристические методы, чтобы угадать, какой формат попробовать в первую очередь. Например, в вашем случае, если строка начинается с цифры, это, вероятно, первый шаблон.
Обратите внимание, что DateTimeFormatter
в Joda Time условно неизменны - вы не должны создавать новый каждый раз, когда хотите проанализировать строку. Создайте их один раз и используйте повторно.