Duvida em transformar string para Calendar

2 respostas
GinaKarinho

Obrigado pelo post mas ao implememtar assim o meu codigo, fiz assim mas mesmo assim não dá

public static Calendar formatDataNascimento() {
       
       try{
        int dia;
        int mes;
        int ano;
        Scanner sc = new Scanner(System.in);
        dia = sc.nextInt();
        mes = sc.nextInt();
        ano = sc.nextInt();

        String str_date= dia+"/"+mes+"/"+ano;
        DateFormat formatter = new SimpleDateFormat("dd/MMM/yy");
        Date data = formatter.parse(str_date);
        
        Calendar cal=Calendar.getInstance();
        cal.setTime(data);
        System.out.println(data.toString());
    return cal;// acho ki o erro ta aki porque ao retornar um objecto cal da classe Calendar ao imprimir diz que NAO FOI POSSIVEL RESOLVER A DATA!!! e provavelmente deveria retornar a data o objecto da classe Date mas dá erro porque o metodo é da classe Calendar

    } catch (ParseException e)

    {System.out.println("NAO FOI POSSIVEL RESOLVER A DATA!!!");
    }
      return null;
    }

//......

public class Aplicacao {

    private static java.util.Scanner teclado = new java.util.Scanner(System.in);

    public static void main(String[] args) {

   System.out.println("Introduza a sua data de nascimento dia, mes, e ano: ");
        dataNascimento=Utils.formatDataNascimento(); // NAO FOI POSSIVEL RESOLVER A DATA!!!

  System.out.println("Data de Nascimento: "+dataNascimento);// Data de Nascimento:null

 }
}

// O programa compila e imprimi  "NAO FOI POSSIVEL RESOLVER A DATA!!! e a data de nascimento fica igual a null"

2 Respostas

GinaKarinho

Eu tenho ainda assim mas não dá na mesma e não tou a ver onde é que está o erro

public static Calendar formatDataNascimento(Calendar dataNascimento) {
       
       try{
        int dia;
        int mes;
        int ano;
        Scanner sc = new Scanner(System.in);
        dia = sc.nextInt();
        mes = sc.nextInt();
        ano = sc.nextInt();

        String str_date= dia+"/"+mes+"/"+ano;
        DateFormat formatter = new SimpleDateFormat("dd/MMM/yy");
        Date data = formatter.parse(str_date);
        
        dataNascimento=Calendar.getInstance();
        dataNascimento.setTime(data);
        System.out.println(data.toString());
        return dataNascimento;

    } catch (ParseException e)

    {System.out.println("NAO FOI POSSIVEL RESOLVER A DATA!!!");
    }
      return dataNascimento;
    }

}
Eric_Yuzo

O problema está no pattern passado para o SimpleDateFormat.

MMM - representa o Mês abreviado com três letras. ex.: jan, fev, mar
MM - representa o mês com número de dois dígitos.

DateFormat formatter = new SimpleDateFormat("dd/MM/yy");
Criado 29 de novembro de 2010
Ultima resposta 29 de nov. de 2010
Respostas 2
Participantes 2