#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
Комментариев нет:
Отправить комментарий