Сбой формата даты - PullRequest
       10

Сбой формата даты

0 голосов
/ 19 февраля 2019

Я пытаюсь отформатировать следующую введенную дату: " 2019-02-12 18:00:40""в следующем формате" dd-MM-гггг".Тем не менее, я получаю смешанные результаты с методом форматирования даты, который я создал ниже, и выходные данные выглядят следующим образом: " Ср. 11 августа 00:00:00 GMT + 02: 00 17"

  private String formatDate(String dateT) throws ParseException
    {
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
        Date date = formatter.parse(dateT);
        return date.toString();
    }

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

По предложению @Robert.Это было решение, которое я в итоге использовал с двумя простыми формататорами.

private String formatDate(String date) throws ParseException {
    SimpleDateFormat inputDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date currentDate = inputDate.parse(date);

    SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
    String formattedDate = formatter.format(currentDate);
    return formattedDate;
}
0 голосов
/ 19 февраля 2019

Как уже упоминалось, вам понадобятся два формата для получения желаемого результата.

Если вы можете использовать Java8 +, я предлагаю использовать LocalDateTime и DateTimeFormatter (вместоиз SimpleDateFormat ):

String stamp = "2019-02-12 18:00:40";
LocalDateTime ldt = LocalDateTime.parse(stamp, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(ldt.format(DateTimeFormatter.ofPattern("dd-MM-yyyy")));

Вывод:

12-02-2019

Редактировать:

Если вы действительно должны использовать устаревшие классы, вы можете применить тот же принцип с SimpleDateFormat:

String stamp = "2019-02-12 18:00:40";
SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dt1.parse(stamp);
SimpleDateFormat dt2 = new SimpleDateFormat("dd-MM-yyyy");
System.out.println(dt2.format(date));
...