2016-04-25 11 views
0

Gibt es eine Möglichkeit, einen DatePicker so zu konfigurieren, dass ein benutzerdefiniertes Format zusätzlich zu den derzeit unterstützten Formaten akzeptiert wird?So verwenden Sie ein benutzerdefiniertes Datumsformat für einen DatePicker

Zum Beispiel - anstelle der Benutzereingabe "04/06/2016" in das Feld, könnten sie "04062016" oder "04.06.2016" eingeben?

Derzeit kann ich sehen, dass die zulässigen Trennzeichen ein "/" und ein "-" sind.

Danke!

Antwort

1

Sie können so viele Muster definieren, wie Sie möchten, und in Ihrem Konverter prüfen, ob das eingegebene Datum für eines von ihnen passt.

private final List<String> patterns = Arrays.asList(
     "MM/dd/yyyy", "MMddyyyy", "MM.dd.yyyy"); 

@Override 
public void start(Stage stage) { 
    DatePicker datePicker = new DatePicker(); 
    datePicker.setConverter(new StringConverter<LocalDate>() { 
     @Override 
     public String toString(LocalDate date) { 
      if (date != null) { 
       for (String pattern : patterns) { 
        try { 
         return DateTimeFormatter.ofPattern(pattern).format(date); 
        } catch (DateTimeException dte) { } 
       } 
       System.out.println("Format Error"); 
      } 
      return ""; 
     } 
     @Override 
     public LocalDate fromString(String string) { 
      if (string != null && !string.isEmpty()) { 
       for (String pattern : patterns) { 
        try { 
         return LocalDate.parse(string, DateTimeFormatter.ofPattern(pattern)); 
        } catch (DateTimeParseException dtpe) { } 
       } 
       System.out.println("Parse Error"); 
      } 
      return null; 
     } 
    }); 
} 
+0

Vielen Dank für die schnelle Antwort. War in der Lage, dies als Basis zu verwenden und meine Formate zu bekommen. –

Verwandte Themen