Проблема с преобразованием в 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
*/