JXDatePicker swingx语言

JXDatePicker swingx language

修改问题如何让JXDatePicker使用指定语言?

不幸的是,JXDatePicker 依赖于旧的 Java 日期和时间 类,包括 DateDateFormat。不幸的是,它们的设计很糟糕,后来(5 年前)被 java.time、现代的 Java 日期和时间 API 所取代。您可能想研究一下是否可以找到更现代的日期选择器组件来替换它。

否则,JXDatePicker.setFormats 确实需要 DateFormat 个对象或 String 个对象。合理的解决方案是在将 Locale 传递给日期选择器之前将其传递给 SimpleDateFormat

    DateFormat dateFormat = new SimpleDateFormat("E, yyyy-MM-dd", Locale.ENGLISH);        

要格式化从日期选择器获得的 Date,您可以选择在格式化之前将其转换为现代类型:

    DateTimeFormatter dateFormatter = DateTimeFormatter
            .ofPattern("E, yyyy-MM-dd", Locale.ENGLISH);
    Date oldfashionedDate = DateDP.getDate();
    ZonedDateTime dateTime = oldfashionedDate.toInstant().atZone(ZoneId.systemDefault());
    String dateString = dateTime.format(dateFormatter);
    System.out.println(dateString);

DateTimeFormatter 指定英语语言环境可确保格式化日期具有英文星期几的缩写,例如:

Mon, 2019-08-05

链接