Как преобразовать String в Date?

375
07 сентября 2017, 17:05

Есть две строки на русском языке:

  1. Сегодня, 12:00
  2. 1 сентября 2017

Подскажите, пожалуйста, как их преобразовать в Date? Буду благодарен за кусок кода или полезную ссылку. Меня интересует преобразование именно этих двух строк. Я только недавно начал учить java. Знания Date и SimpleDateFormat еще до конца не устаканились :)

Answer 1

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
READ ALSO
Что лучше использовать для back end-a на java? [требует правки]

Что лучше использовать для back end-a на java? [требует правки]

Что лучше использовать для back end-a на java, если он будет использоваться под web и mobile appИ на сколько хорошо для этого подходит java? Или может есть...

296
Пример JAVA кода API приложения для interactivebrokers

Пример JAVA кода API приложения для interactivebrokers

Здравствуйте! Я решил попробовать создать свое API приложения для торговой площадки InteractiveBrokersОднако подробной документации по этому поводу...

284
Не удается конвертировать String в enum

Не удается конвертировать String в enum

Вы неправильно использовали конструктор для EnumКроме того, обычно Enum именуется существительным в единцественном числе

306
Сравнение строк в Java по ссылке

Сравнение строк в Java по ссылке

Во многих книгах по java (например, "Философия Java") пишут, что при написании конструкции вида String s = "some string" на самом деле происходит создание...

324