Есть две строки на русском языке:
Сегодня, 12:001 сентября 2017Подскажите, пожалуйста, как их преобразовать в Date? Буду благодарен за кусок кода или полезную ссылку. Меня интересует преобразование именно этих двух строк. Я только недавно начал учить java. Знания Date и SimpleDateFormat еще до конца не устаканились :)
1.С использованием LocalDateTime и поиска времени по шаблону:
String string = "Сегодня, 12:00";
LocalTime timePart = null;
LocalDate datePart = null;
String regex = "([01]?[0-9]|2[0-3]):[0-5][0-9]";
Matcher m = Pattern.compile(regex).matcher(string);
if (m.find()) timePart = LocalTime.parse(m.group(0));
if (string.contains("Сегодня")) datePart = LocalDate.now();
LocalDateTime date = LocalDateTime.of(datePart, timePart);
Date out = Date.from(date.atZone(ZoneId.systemDefault()).toInstant());
System.out.println(out); // Wed Sep 06 12:00:00 MSK 2017
Для Вчера можно использовать datePart = LocalDate.now().minus(Period.ofDays(1));
2.
String string = "1 сентября 2017";
DateFormat format = new SimpleDateFormat("d MMMM yyyy", new Locale("ru"));
Date date = format.parse(string);
System.out.println(date); // Fri Sep 01 00:00:00 GMT+03:00 2017
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости