Formatar data

2 respostas
L

Boa noite, preciso pegar via teclado uma data de nascimento ( dia, mês e ano separadamente) e ajustar a data para exibir assim: "27/04/2014", e utilizar um método:

package pessoa;

import java.text.SimpleDateFormat;
import javax.swing.JOptionPane;

public class Pessoa {
      
    private String diaNascimento;
    private String mesNascimento;
    private String anoNascimento;
    
    public String getDiaNascimento() {
        return this.diaNascimento;
    }
    public void setDiaNascimento(String diaNascimento) {
        this.diaNascimento = diaNascimento;
    }
    
    
    public String getMesNascimento() {
        return this.mesNascimento;
    }
    public void setMesNascimento(String mesNascimento) {
        this.mesNascimento = mesNascimento;
    }
    
    
    public String getAnoNascimento() {
        return this.anoNascimento;
    }
    public void setAnoNascimento(String anoNascimento) {
        this.anoNascimento = anoNascimento;
    }
    
      String ajustarDataDeNascimento(String diaNascimento, String mesNascimento, String anoNascimento, Object diaNascimeto ){
        String data = diaNascimento + mesNascimento + anoNascimento;
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
        return sdf.format(data);
    }
    

     public static void main(String[] args) {
       Pessoa p = new Pessoa ();
        String dia = JOptionPane.showInputDialog(null, "Digite o dia de nascimento");
        String mes = JOptionPane.showInputDialog(null, "Digite o mes de nascimento");
        String ano = JOptionPane.showInputDialog(null, "Digite o dia de nascimento");
        System.out.println(p.ajustarDataDeNascimento(dia, mes, ano, args));
    }
    
    
}

Obviamente o código esta errado, mas ja tentei de outras maneiras, mas também não consegui. Alguém poderia ajudar?
Obrigada.

2 Respostas

guilherme_costa1

Bom dia,

Se deseja devolver uma data formatada, primeiramente precisa passar um Objeto do tipo java.util.Date para o método format() do SimpleDateFormat, então pode fazer o seguinte:

String ajustarDataDeNascimento(String diaNascimento, String mesNascimento, String anoNascimento, Object diaNascimeto ){  
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");  
        Date data =  sdf.parse(diaNascimento + "-" + mesNascimento + "-" + anoNascimento);
        return sdf.format(data);  
    }

Lembre-se de informar o ano com 4 dígitos.

Evandro_Canal

Se tudo o que você precisa é exibir a saída no formato desejado, basta retornar uma String devidamente concatenada:

String ajustarDataDeNascimento(String diaNascimento, String mesNascimento, String anoNascimento) throws ParseException { return diaNascimento + "/" + mesNascimento + "/" + anoNascimento; }
Se quiser usar a classe SimpleDateFormat:

String ajustarDataDeNascimento(String diaNascimento, String mesNascimento, String anoNascimento) throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		return sdf.format(sdf.parse(diaNascimento + "/" + mesNascimento + "/" + anoNascimento));
	}

O método parse de SimpleDateFormat converte a String passada para o Objeto Date, na sequência, o método format, também de SimpleDateFormat, converte o Date em uma String formatada como definido no construtor (new SimpleDateFormat(“dd/MM/yyyy”)).

Criado 27 de abril de 2014
Ultima resposta 30 de abr. de 2014
Respostas 2
Participantes 3