Проблема с преобразованием в LocalDateTime

Есть метод в котором возникает ошибка , при использовании форматера в последней строке где return . В чем причина ?

public LocalDateTime removeCharT(LocalDateTime value) {
    String temp  = value.toString();
    LocalDateTime time = LocalDateTime.parse(temp, formatter);
    return LocalDateTime.parse(DateTimeFormatter.ofPattern("yyyy-MM-dd  HH:mm:ss").
            format(time));
}

private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm");
time = 2021-03-12T14:23
formatter - Value(YearOfEra,4,19,EXCEEDS_PAD)''Value(MonthOfYear,2)''Value(DayOfMonth,2)'T'Value(HourOfDay,2)':'Value(MinuteOfHour,2)

пишет в консоли - Text '2021-03-12 14:23:00' could not be parsed at index 10


Ответы (2 шт):

Автор решения: insolor

Символ T есть только в текстовом представлении. В самом объекте LocalDateTime его нет, он появляется только при преобразовании в текст. Множественное преобразование в строку потом обратно, и так много раз, не имеет никакого смысла - все равно при переводе LocalDateTime в строку через toString() будет появляться эта буква T.

Если нужно вывести без T, то нужно форматировать в строку с помощью форматтера, в котором нет буквы T между датой и временем.

public String format(LocalDateTime value) {
    return DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(value);
}
→ Ссылка
Автор решения: fox

так попробуйте))

import java.util.Calendar;

public class tt {
    public static void main(String[] args) {
         Calendar c = Calendar.getInstance();
          System.out.format("%tm-%te-%tY %tl:%tM", c, c, c, c, c);              
 // -->  "03-31-2021 8:46"
    }

}

/*%tB Преобразование даты и времени - полное название месяца, зависящее от локали.
%td, %te Преобразование даты и времени - 2-значный день месяца. td имеет ведущие нули по мере необходимости, te - нет.
%ty, %tY Преобразование даты и времени - ty = год из 2 цифр, tY = год из 4 цифр.
%tl Преобразование даты и времени - час в 12-часовой формат.
%tM Преобразование даты и времени - минуты в 2-значном формате с ведущими нулями по мере необходимости.
%tp Преобразование даты и времени - время до и после полудня в зависимости от региона (нижний регистр).
%tm Преобразование даты и времени - месяцы в 2-значном формате, при необходимости с нулями в начале.
%tD Преобразование даты и времени - дата как% tm% td% ty
*/
→ Ссылка