Я не думаю, что такой метод легко доступен. Вам нужно будет кодировать его самостоятельно.
Это возможно, хотя не всегда возможно дать уникальный ответ.
Требуется ровно три числа в строке и одинаковые разделители до, между и после чисел в каждой строке. Подберите первое, второе и третье число из каждой строки. Найти минимум и максимум каждого. Я беру твой пример:
[ "01/02/2018", "13/9/2018", "8/11/2016"]
- Первое число имеет минимум 1 и максимум 13
- Второе число хар мин 2 и макс 11
- Третий номер имеет минимум 2016 и максимум 2018
Год легкий, это число, где минимальное и максимальное значения находятся в пределах, скажем, с 1900 по 2100. Выберите ограничения, которые соответствуют вашей ситуации. Месяц - это число, которое не превышает 12. В вашем примере второе число - это месяц, так как первое имеет максимум 13. Если ни одно из чисел, не относящихся к году, не превышает 12, вы не можете решить, и вам нужно будет бросить исключение или тому подобное. После того, как вы определили год и месяц, число, которое вы не использовали, - это день месяца. Убедитесь, что это в пределах от 1 до 31 для проверки.
Как для дня, так и для месяца: если есть вхождение с начальным нулем (01
и 02
в вашем примере) и все вхождения имеют две цифры, требуются две цифры в формате, используя dd
или MM
. В противном случае используйте d
или M
(который напечатает достаточно цифр для номера и проанализирует ввод одной и двух цифр). Поскольку в вашем примере месяц указан как 9
(одна цифра во второй строке) и 8
как день, используйте d
и M
.
Окончательный результат: d/M/uuuu
или d/M/yyyy
.
Удачного кодирования.