Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Maneiras de transformar um LocalDate em string / string em LocalDate

Olá tudo certo? Gostaria de saber se existe alguma maneira mais compacta menos trabalhosa de transformar um string em LocalDate e vice e versa. Eu elaborei um teste mas achei muito trabalhoso. Na época que estava na faculdade tive muito problema em fazer essas transformações, quando inseria em um método que fazia parte do MVC aparecia trilhões de erros e todo resto, bem que no tempo o professor usava bibliotecas arcaicas.

    DateTimeFormatter formatador = DateTimeFormatter.ofPattern("dd/MM/yyyy");

    String dataUser = JOptionPane.showInputDialog(null, "Digite a data");
    int dia = Integer.parseInt(dataUser.substring(0, 2));
    int mes = Integer.parseInt(dataUser.substring(3, 5));
    int ano = Integer.parseInt(dataUser.substring(6, 10));
    LocalDate dta = LocalDate.of(ano, mes, dia);
    /*Essa classe foi criada e seus tipos de atributos são um LocalDate data e String descricao*/
    Data data = new Data(dta, " testando, deu um trabalho!!!");
    System.out.println(data.getData());
    String formatdata = data.getData().format(formatador);
    System.out.println(formatdata);
4 respostas

Oie Drvw, tudo bem contigo?

Acho que não tem muito como fugir dessa "verbosidade" do java.

Segue alguns outros exemplos de conversão:

String -> LocalDate

            String data = "02/08/2021";
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
            LocalDate date = LocalDate.parse(data,formatter);

            System.out.println(date);

Localdate -> String

            LocalDate localDate = LocalDate.now();
            Date date = Date.valueOf(localDate);
            SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
            String data = format.format(date);

            System.out.println(data);

Um curso aqui da plataforma que acredito que possa te ajudar é o "Java Brasil: Formate datas, cpf e números nacionais" , vale a pena você dar uma olhada!

Se tiver qualquer outra dúvida é só mandar mensagem por aqui :)

Opa rapaz agradeço demais por mandar essas dicas e o curso, farei com certeza. no entanto ao tentar executar apareceu um erro de compilação.

        LocalDate localDate = LocalDate.now();
        /*The method valueOf(LocalDate) is undefined for the type Date*/
        Date date = Date.valueOf(localDate);
        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
        String data = format.format(date);

        System.out.println(data);

Opa, imagina! To aqui para ajudar.

Quanto ao erro, acredito que o import deve ter sido feito errado, ele usa a biblioteca "java.sql.Date;" e não a "java.util", por isso você precisa fazer esse import aqui:

import java.sql.Date;

Veja se agora funciona!

solução!

putz cara desculpa a noobisse, realmente era o importe tinha importato do .util porém não sabia que existiam métodos da biblioteca sql.date pra fazer esse tipo de coisa, sempre ouvia dos meus tutures que todos os métodos ali eram apenas pra sql. em fim mais uma vez grato!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software