2016-04-25 13 views
0

現在サポートされている形式に加えてカスタム形式を受け入れるようにDatePickerを構成する方法はありますか?DatePickerのカスタム日付形式を使用する方法

たとえば、ユーザーがフィールドに「04/06/2016」と入力するのではなく、「04062016」または「04.06.2016」と入力できますか?

現在、私は受け入れ可能なセパレータが "/"と " - "であることがわかります。

ありがとうございます!

答えて

1

必要な数だけパターンを定義し、入力した日付がそのパターンに適合するかどうかコンバーターチェックで定義できます。

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

すばやい返信ありがとうございます。これをベースとして使用し、フォーマットを取得することができました。 –

関連する問題