«Как отформатировать LocalDate с пользовательским шаблоном» в Java - PullRequest
0 голосов
/ 16 января 2019

Я новичок в JodaTime и изучаю его самостоятельно.На самом деле я хочу просто отформатировать LocateDate в моем собственном формате.Мой формат "dd-mm-yyyy"

У меня есть метод, который рассчитывает разницу с двумя датами:

private void sampleDaysDifference() {
    DateTime todayDate = getLocalTodayDate();
    DateTime dateAfterTwoDays = getDateAfterTwoDays();

    //get the days difference
    int differenceOfDates = Days.daysBetween(todayDate, dateAfterTwoDays).getDays();
    Log.e("logX","differenceOfDates: " + differenceOfDates);

}

Чтобы получить сегодняшнюю дату, которую я использую:

private DateTime getLocalTodayDate() {
    LocalDate now = LocalDate.now();
    DateTimeFormatter fmt = DateTimeFormat.forPattern(DATE_FORMAT);
    return fmt.parseDateTime(now.toString());//return the today date
}

и чтобы получить дату через два дня:

private DateTime getDateAfterTwoDays() {
    LocalDate now = LocalDate.now();
    DateTimeFormatter fmt = DateTimeFormat.forPattern(DATE_FORMAT);
    return fmt.parseDateTime(now.plusDays(2).toString());//return date after two days
}

Проблема в том, что я понятия не имею, как форматировать дату с помощью JodaTime, может кто-нибудь подскажите, пожалуйста, как отформатировать JodaTime LocalDate!

На самом деле мое приложение падает с помощью трассировки стека:

  Caused by: java.lang.IllegalArgumentException: Invalid format: "16 January, 2019" is malformed at " January, 2019"

1 Ответ

0 голосов
/ 16 января 2019

Вы почти у цели, но вы указали неверный шаблон, замените "dd-mm-yyyy" на этот "dd-MM-yyyy" документы для шаблонов

Простой пример

System.out.println(LocalDate.now().format(DateTimeFormatter.ofPattern("dd-MM-yyyy")));   //16-01-2019

От Joda DateTimeFormatter Joda-Docs

Синтаксис шаблона в основном совместим с java.text.SimpleDateFormat

...