Como converter String para Date em Java: Guia completo de string to date java

O que significa converter String para Date em Java?
Converter uma string para Date em Java (ou string to date java) é uma necessidade comum ao lidar com entradas de usuário, integrações ou arquivos. A manipulação de data em Java é uma habilidade fundamental para qualquer desenvolvedor Java.
public class Curso {
private String nome;
private Date dataDeLancamento;
public void setLancamento(Date data) {
this.lancamento = data;
}
// resto do código
}Porém, muitas vezes, a informação dataDeLancamento é recebida como uma String:
String dataRecebida = “23/11/2015”;
Como especificar um formatador para converter String para Date em Java
Se você busca por Java convert string to date, este é um dos métodos tradicionais. O SimpleDateFormat é muito utilizado para formatar data Java “dd/MM/yyyy” e fazer a conversão de uma string em data.
Importante: SimpleDateFormat não é thread-safe. Se você estiver usando esta classe em um ambiente multithread, é necessário criar instâncias separadas para cada thread ou sincronizar o acesso externamente. Para aplicações modernas, considere usar DateTimeFormatter (Java 8+), que é imutável e thread-safe.
Para converter essa dataRecebida para a classe Date precisamos definir o formato esperado utilizando a classe SimpleDateFormat:
SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy"); Essa definição está especificando que esperamos uma data que contenha dia/mês/ano.
Como usar SimpleDateFormat para converter String em Date
Mas e para converter de String para Date? Utilizaremos o método parse() do objeto formato:
Date dataFormatada = formato.parse(dataRecebida); Agora basta adicionar a data formatada para o objeto da classe Curso:
Curso novo = new Curso();
SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
Date data = formato.parse("23/11/2015");
novo.setLancamento(data);Mas, ao imprimir essa data, qual resultado realmente aparece?
System.out.println(data); Resultado:
> Mon Nov 23 00:00:00 BRST 2015 Como formatar data em Java para o padrão após converter String em Date
Note que, mesmo conseguindo converter uma String para Date, a representação padrão ao imprimir não será exatamente a que foi especificada no formato. Para exibir a data no formato “dd/MM/yyyy”, é preciso utilizar o método format() do objeto formato.
System.out.println(formato.format(data)); Resultado:
> 23/11/2015 Como converter String em data usando Calendar em Java
Apesar de o uso do Calendar ser menos comum em projetos mais recentes, ainda é importante para sistemas legados que fazem Java date from string. Entenda como fazer essa conversão:
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
System.out.println(formato.format(calendar.getTime()));Resultado:
> 23/11/2015 Mesmo sendo mais antigo, é importante compreender a existência da compatibilidade.
Nota: A classe Calendar também é mutável e não thread-safe, apresentando problemas como meses indexados em zero (Janeiro = 0, Dezembro = 11), o que é uma fonte comum de bugs. Para código novo em 2026, prefira sempre as APIs do pacote java.time.
Como converter String para LocalDate no Java 8+
A partir do Java 8, foi introduzida a classe LocalDate do pacote "java.time", o qual possui uma melhor abstração no tratamento de datas. As classes deste pacote são imutáveis e thread-safe, diferentemente de SimpleDateFormat, Date e Calendar.
DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate data = LocalDate.parse("23/11/2015", formato);
System.out.println(data);Resultado:
> 2015-11-23 Observe que o resultado é a impressão padrão fornecida pela classe LocalDate. Assim como no exemplo anterior, é preciso utilizar o formatador para exibir a data conforme o formato desejado:
System.out.println(formato.format(data)); Resultado:
> 23/11/2015 Como vimos, para lidar com a tarefa de conversão de datas, precisamos utilizar uma classe responsável pelo formato que desejamos.
Se você deseja se aprofundar mais em manipulação de datas e outras novidades do Java atual, a plataforma da Alura oferece trilhas como Aprenda a programar em Java com Orientação a Objetos ou Java e Spring Boot, e não podemos esquecer da carreira Desenvolvimento Back-end Java.







