2016-05-01 16 views
5

Ho usato questo metodo per impostare il valore datepicker ma a volte un'eccezione:Come impostare correttamente il valore javafx datepicker?

public static final LocalDate LOCAL_DATE (String dateString){ 
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); 
    LocalDate localDate = LocalDate.parse(dateString, formatter); 
    return localDate; 
} 

try { 
     datePicker.setValue(LOCAL_DATE("2016-05-01"); 
    } catch (NullPointerException e) { 
    } 

//the exception: 
java.time.format.DateTimeParseException: Text '' could not be parsed at index 0 

Quindi cosa c'è di sbagliato qui?

+0

Si specifica un modello di "dd-MM-yyyy" e di fornire "2016/05/01", che chiaramente non corrisponde quel modello. –

+0

questo è un formattatore per datepicker. –

+0

Beh sì, ovviamente, ma il punto è che stai fornendo la data in un formato diverso da quello specificato per il formattatore. –

risposta

9

di specificare un formato per analizzare la data di dd-MM-yyyy:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); 

ma poi vi fornirà la data in un formato che non corrisponde a quello:

datePicker.setValue(LOCAL_DATE("2016-05-01")); 

Ovviamente, non è "2016-05-01" nel formato "dd-MM-yyyy".

Provate

datePicker.setValue(LOCAL_DATE("01-05-2016")); 
Problemi correlati