У меня есть некоторые проблемы с этим (я новичок здесь, я только что начал изучать Java в степени 2 недели назад, и это обучение - полная катастрофа, я ничего не понимаю и так быстро нервничаю) Это полный код (опять же, извините, если я делаю что-то не так, я здесь новичок и программирую вообще):

package arroyo.munoz.ariel.t4;

import java.util.Scanner;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class EJ7_2 {
    
    
    private static Scanner sc = new Scanner(System.in);
    

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        
        System.out.println("Escribe una fecha (dd/MM/yyyy HH:mm:SS):");
        String fecha = sc.nextLine();
        
    
        DateTimeFormatter fechaPers = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:SS");
        LocalDateTime fPers = LocalDateTime.parse(fecha, fechaPers);
        
        System.out.printf("%nInformación sobre la fecha introducida:");
        System.out.printf("%n*******************************************");

        System.out.printf("\nHora introducida: " + fPers.getHour());
        System.out.printf("\nMinutos introducidos: " + fPers.getMinute());
        
    }

}

И ошибка:

Escribe una fecha (dd/MM/yyyy):
12/12/2000 16:30:12
Exception in thread "main" java.time.format.DateTimeParseException: Text '12/12/2000' could not be parsed at index 10
    at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2056)
    at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1958)
    at java.base/java.time.LocalDateTime.parse(LocalDateTime.java:494)
    at arroyo.munoz.ariel.t4.EJ7_2.main(EJ7_2.java:32)

Строка 32: LocalDateTime fPers = LocalDateTime.parse(fecha, fechaPers);

Дело в том, что мне нужно получить что-то вроде этого введите здесь описание изображения Мне нужно сделать это с помощью LocalDateTime/parse/ofPattern и т. д., я не могу сделать это ни с чем другим, но если это что-то более простое, вы можете сказать это, в конце концов, я здесь для обучения

Спасибо!

0
Ariel Muñoz Arroyo 1 Окт 2022 в 20:35
Пожалуйста, используйте правильный регистр, орфографию, пунктуацию и полные предложения. Этот сайт больше похож на Википедию, чем на обычный чат. И перевести на английский. Для испанского или португальского используйте другие версии Stack Overflow.
 – 
Basil Bourque
1 Окт 2022 в 20:53
Ваш шаблон строки for не соответствует вашему вводу. Вы запрашиваете дату, но затем анализируете дату как время суток. Пожалуйста, сделайте больше исследований, прежде чем публиковать здесь. Парсинг даты и времени уже обсуждался много раз.
 – 
Basil Bourque
1 Окт 2022 в 20:57
Хоть и подсказывал дату, видимо дату-время набрал, но не все прочитал. Это вопрос правильного использования сканера, а не анализа даты и времени.
 – 
access violation
1 Окт 2022 в 20:58
Вы могли бы решить эту проблему самостоятельно, распечатав значение fecha перед его разбором.
 – 
VGR
1 Окт 2022 в 20:59
1
- не нужно печатать, это в сообщении об исключении!
 – 
access violation
1 Окт 2022 в 21:00

2 ответа

Лучший ответ

Это должно быть nextLine (на основе трассировки стека)

String fecha = sc.nextLine();

Также я вижу проблему здесь: ЧЧ: мм: СС

СС — миллисекунды

Должно быть маленькое 'ss', я думаю

HH:mm:ss
0
notAPPP 1 Окт 2022 в 21:04
1
ВОТ ЭТО БЫЛО, большое спасибо, я занимался этой проблемой около 8 часов, и все люди из моего класса тоже!! Спасибо большое, очень приятно!!
 – 
Ariel Muñoz Arroyo
1 Окт 2022 в 21:08

В этой строке читается один токен:

String fecha = sc.next();

Итак, «феча» теперь «12.12.2000».

Это не соответствует шаблону «дд/мм/гггг ЧЧ:мм:СС», так как нет временной части.

Если вы хотите прочитать всю строку ввода, используйте метод nextLine.

1
access violation 1 Окт 2022 в 20:57
Я не уверен, что ответ на такой упрощенный вопрос по теме, которая уже обсуждалась много-много раз, полезен.
 – 
Basil Bourque
1 Окт 2022 в 20:58
Я получаю ту же ошибку :(
 – 
Ariel Muñoz Arroyo
1 Окт 2022 в 20:59