Você está aqui: Java ::: Dicas & Truques ::: Data e Hora |
Como ler uma data informada pelo usuário em Java, fazer a validação usando SimpleDateFormat e retornar um objeto DateQuantidade de visualizações: 676 vezes |
|
Em várias situações nossas aplicações Java precisam ler datas informadas pelo usuário ou vindas de arquivos, e, uma das maiores dores de cabeça que temos é validar essas datas corretamente, de forma a evitar cálculos errados. Nesta dica mostrarei como podemos usar um objeto da classe SimpleDateFormat e o seu método parse() para ler uma data em formato de string e retornar um objeto Date. Note que a data será informada pelo usuário e lida por meio do método nextLine() da classe Scanner. Observe também o valor false passado para o método setLenient() da classe SimpleDateFormat para reforçar a validação da data e não permitir valores que excedem o mínimo e máximo permitido para a faixa de dias e meses. Veja o código Java completo para o exemplo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos ler a data
System.out.print("Informe uma data (DD/MM/AAAA): ");
String data = entrada.nextLine();
// mostramos os resultados
System.out.println("Você informou a data: " + data);
try{
System.out.println("O objeto Date construído foi: " +
lerData(data));
}
catch(ParseException pe){
System.out.println("Erro: " + pe);
}
}
// função que lê a data informada pelo usuário, faz
// a validação e retorna um novo objeto Date contendo a
// data informada
public static Date lerData(String data) throws ParseException{
// primeiro vamos criar um objeto da classe SimpleDateFormat
// com o formato desejado
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
// recusa datas inválidas
sdf.setLenient(false);
// checamos se o tamanho da data está correto
if(data.length() != 10){
throw new ParseException("Tamanho inválido: " + data, 0);
}
// retornamos a data construída
return sdf.parse(data);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Informe uma data (DD/MM/AAAA): 02/10/2021 Você informou a data: 02/10/2021 O objeto Date construído foi: Sat Oct 02 00:00:00 BRT 2021 Informe uma data (DD/MM/AAAA): 24/14/2020 Você informou a data: 24/14/2020 Erro: java.text.ParseException: Unparseable date: "24/14/2020" |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







