Text '03 -03-1996 'could not be parsed at index 0

0

I see this error when I try to save an EditText type date in a variable type local date (making the appropriate conversion) error line in bold.

Code

public void metodo_editar2(View view) {

    //se añade el contacto

    nombre=campo1.getText().toString();
    papellido=campo2.getText().toString();
    sapellido=campo3.getText().toString();
    direccion=campo4.getText().toString();
    poblacion=campo6.getText().toString();
    //try {
        telefono=Integer.parseInt(campo5.getText().toString());
    //}
    //catch (Exception e){

        advertencia1.setVisibility(View.VISIBLE);
    //}try {
        fechanacimiento = LocalDate.parse(campo7.getText());


        //convertimos la fecha tipo date en local date
        //fechanacimiento = fechanacimiento.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

        LocalDate fechaactual = LocalDate.now();
        LocalDate birthday = LocalDate.of(fechaactual.getYear(), fechanacimiento.getMonthValue(), fechanacimiento.getDayOfMonth());
        if (fechaactual.isAfter(birthday))
            birthday = birthday.plusYears(1);
        Period diff = Period.between(fechaactual, birthday);
        Contacto contacto = new Contacto(nombre, papellido, sapellido, direccion, poblacion, R.drawable.agenda, telefono, fechanacimiento);

        contacto.contactos.add(contacto);

        // se añade el array a la tabla del menu superior


        for (int i = 0; i < contacto.contactos.size(); i++) {


            String n = contacto.contactos.get(i).getNombre();
            LocalDate f = contacto.contactos.get(i).getFechanacimiento();

            //metemos el nombre y el cumpleaños en sus determinadas columnas
            TextView textonombre = new TextView(this);
            TextView textofecha = new TextView(this);
            for (i = 0; i < contacto.contactos.size(); i++)
                textonombre.setText(contacto.contactos.get(i).getNombre());

            //convertimos fecha en string para poder añadirla al texto
            String fechatexto = contacto.contactos.get(i).convertirfecha(contacto.contactos.get(i).getFechanacimiento());

            textofecha.setText(fechatexto);

            //añadimos los atributos a sus respectivas columnas
            tabla2.addView(textonombre);
            tabla2.addView(textofecha);

        }
    }

XML file

<EditText
    android:id="@+id/campo7"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginEnd="6dp"
    android:layout_marginRight="6dp"
    android:layout_marginBottom="268dp"
    android:hint="Introduce tu fecha de nacimiento aquí(dd-MM-yyyy)"
    android:inputType="date"
    android:textColorHint="@android:color/background_light"
    android:textSize="10dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/Fecha"
    app:layout_constraintTop_toBottomOf="@+id/textView3" />
    
asked by victor96 13.11.2018 в 13:56
source

1 answer

1

The default format for instantiating a date is AAAA-MM-DD . Ex.

Date   date       = format.parse ( "2009-12-31" );

You have it the other way around DD-MM-AAAA : 03-03-1996

    
answered by 13.11.2018 в 16:37