Como converter String para Date em Java

Neste post vou mostrar como converter uma String em Data no Java com exemplos fáceis para se utilizar em seu código

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Java - TUTORIAL

Última atualização em: | 37770 Visualizações

Para iniciar imagine o cenário: Você tem uma data que está em um formato de String mas precisa converter para o tipo Date para realizar alguma operação.

Perfeito, para isso, o Java nos fornece formatadores, para que seja possivel alterar o tipo de uma informação para data e vice-versa.

Formatador de Date Java

O formatador que utilizaremos é o SimpleDateFormat. Seu uso é bastante simples, veja primeiro como definir um formatador:

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

Note que informamos uma padrão ao iniciar o SimpleDateFormat. Sendo dd o para o dia, MM para o mês e yyyy para o ano. Sendo assim este formatador permite formatar datas seguindo apenas este padrão: dia/mês/ano.



Usando o formatador para converter String em Date

Para utilizar o formatador, precisamos utilizar o método parse() informando a data no formato suportador pelo formatador, veja:

Date date = formatter.parse("19/07/2020");

Note que sempre que utilizamos o parse, devemos esperar uma exceção do tipo: ParseException a qual pode ocorrer se a data não corresponder ao formato.

Vamos imprimir a data convertida para visualizar o resultado.

System.out.println(date);

Assim, temos o seguinte retorno no console:

Fri Jul 19 00:00:00 BRT 2020

Imprimindo a data no formato desejado

Após a conversão, é possível imprimir a data no formato desejado de forma simples e fácil. Neste exemplo, vou imprimir apenas o mês e o ano usando outro formatador, veja:

SimpleDateFormat formatter = new SimpleDateFormat("MM/yyyy");
String monthAndYear = formatter.format(new Date());
System.out.println(monthAndYear);

A saída será:

07/2020

Exemplo com a API Calendar

Vamos fazer o mesmo exemplo com a API Calendar, o que é bastante simples, veja:

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Calendar calendar = Calendar.getInstance();
System.out.println(formatter.format(calendar.getTime()));

A saída será:

19/07/2020

Note que será impresso a data corrente. A data impressa é a data que foi criado este tutorial.

Exemplo completo

Vejamos um exemplo completo:

import static org.junit.jupiter.api.Assertions.assertNotNull;

import org.junit.jupiter.api.Test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class FormatterTest {

    @Test
    public void test() {
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

        Date date = null;
        try {
            date = formatter.parse("24/07/2020");
            System.out.println(formatter.parse("24/07/2020"));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        assertNotNull(date);
    }

    @Test
    public void testMonthAndYear() {
        SimpleDateFormat formatter = new SimpleDateFormat("MM/yyyy");
        String monthAndYear = formatter.format(new Date());
        System.out.println(monthAndYear);
    }

    @Test
    public void testFormatterCalendar() {
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        Calendar calendar = Calendar.getInstance();
        System.out.println(formatter.format(calendar.getTime()));
    }
}

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Apoiadores

Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!