Страницы

Поиск по вопросам

среда, 1 января 2020 г.

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

#java #строки #дата #simpledateformat


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


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


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


Ответы

Ответ 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

Комментариев нет:

Отправить комментарий