У меня есть простой Java LocalDateTime, как показано ниже:
DateTimeFormatter theDtFrmtr = DateTimeFormatter.ofPattern("M/d/yy h:mm a");
String strDate = "3/23/21 1:17 PM";
LocalDateTime localDate = LocalDateTime.parse(strDate, theDtFrmtr);
System.out.println("localDate - "+ localDate);
Результат: localDate - 2021-03-23T13:17
Я ожидаю, что это будет — localDate - 2021-03-23 1:17 pm
Что мне здесь не хватает?
Когда вы печатаете дату, вызывается ее toString()
, которая печатает часы в 24-часовом формате. Единственный способ получить результат в желаемом формате — использовать этот форматер. Так что печатайте с System.out.println("localDate - "+ theDtFrmtr.format(localDate));
. Объект LocalDateTime
не имеет внутренних форматов. — person Ajay Kumar schedule 07.07.2021
Манн …! Потрясающе … не могли бы вы сформулировать это как ответ, чтобы я мог принять? — person Ajay Kumar schedule 07.07.2021
Отвечает ли это на ваш вопрос? Невозможно избавиться от буквы T в LocalDateTime. Это или это? — person Ajay Kumar schedule 08.07.2021
Нет Оле. Это было как раз о печати даты. — person Ajay Kumar schedule 08.07.2021
Из документов JAVA Oracle,
static LocalDateTime parse(CharSequence text)
Получает экземпляр LocalDateTime из текстовой строки, например 2007-12-03T10: 15: 30.static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр LocalDateTime из текстовой строки с помощью специального средства форматирования.Объект DateTimeFormatter необходимо отформатировать.