Преобразовать Строку System.in.next() в LocalDate
Суть такова, пользователь вводит дату в любом из форматов dd.mm.yyyy, dd.mm.yy, dd/mm/yyyy, dd/mm/yy и на выходе эта строка преобразуется в LocalDate
Как получить из строки LocalDate я понимаю, но никак не получается сделать преобразование сразу для всех типов.
Ответы (1 шт):
Допустим, вы получаете на вход строку String date. Можно поступить так:
1. Проверьте строку: date.contains('.'). Это поможет поделить строки на разделяющиеся слэшем и разделяющиеся точкой.
2. В зависимости от шага 2 сделайте String[] dateParts = date.split(".") или date.split("/").
3. Вы получили массив, состоящий из года, месяца и дня. Дальше вы можете сделать так:
LocalDate curDate = LocalDate.of(
Integer.parseInt(dateParts[2].length == 2 ? "20" + dateParts[2] : dateParts[2]),
Integer.parseInt(dateParts[1]),
Integer.parseInt(dateParts[0]));
Проверка на длину строки года нужны, чтобы получить строку вида 2019.
Вот и всё. Вы получили нужную дату.