Gente uma ajudinha por favor.
queria que o usario digitasse a hora de entrada e fosse impresso na tela
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println("Entre com a hora de Inicio");
Date horaInicio = simpleDateFormat.parse(Entrada.nextLine());
System.out.println("A hora de Entrada: " + horaInicio);
porem da erro
sou nova e um exercicio que tenho que fazer
1 curtida
que erro tá dando?
Olhando rápido aqui, o código tá errado, vc declara sdf e usa simpleDateFormat:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println("Entre com a hora de Inicio");
Date horaInicio = sdf.parse(Entrada.nextLine());
System.out.println("A hora de Entrada: " + horaInicio);
É isso?
2 curtidas
Como já dito, um erro está aqui, vc tenta usar a variável simpleDateFormat
, que não existe (o que vc criou é sdf
).
Outro ponto é que o método parse
lança uma exceção, e vc deve capturá-la:
try {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println("Entre com a hora de Inicio");
Date horaInicio = sdf.parse(Entrada.nextLine());
System.out.println("A hora de Entrada: " + horaInicio);
} catch (ParseException ex) {
ex.printStackTrace();
}
Ou faça com que o main
lance a exceção (como é um exercício, não importa muito, mas em aplicações sérias tem que analisar o que fazer com a exceção, mas já estou desviando do assunto):
public static void main(String[] args) throws ParseException {
Scanner Entrada = new Scanner(System.in);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println("Entre com a hora de Inicio");
Date horaInicio = sdf.parse(Entrada.nextLine());
System.out.println("A hora de Entrada: " + horaInicio);
}
Não use API’s obsoletas
Desde o Java 8 (lançado em 2014, quase 10 anos atrás) existe a API java.time
, que veio para corrigir uma série de problemas existentes em Date
e SimpleDateFormat
.
No caso, ficaria assim:
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class Teste {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Entre com a hora de Inicio");
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime horaInicio = LocalTime.parse(entrada.nextLine(), dtf);
System.out.println("A hora de Entrada: " + horaInicio);
}
}
Apesar de parecer a mesma coisa, a diferença fundamental está por debaixo dos panos. Date
e SimpleDateFormat
possuem uma longa lista de problemas e falhas de design que foram corrigidas na nova API, e a maior parte são detalhes de implementação que vc não vê. De qualquer forma, é interessante aprender a nova API (que nem é mais tão nova assim), pois ela te poupará de muita dor de cabeça (digo isso com conhecimento de causa, de alguém que apanhou muito com os problemas da API antiga).
3 curtidas
caraca vocês sao foda entendi, galera. muito obrigada a todossssss