Java JXDatePicker swingx语言

Java JXDatePicker swingx语言,java,datepicker,date-format,arabic,swingx,Java,Datepicker,Date Format,Arabic,Swingx,修改了如何使JXDatePicker使用指定语言的问题?不幸的是,JXDatePicker依赖于旧的Java日期和时间类,包括日期和日期格式。这是不幸的,因为它们的设计很差,5年前被现代java日期和时间API java.time取代。您可能需要研究是否可以找到更现代的日期选择器组件来替换它 否则,JXDatePicker.setFormats确实需要DateFormat对象或字符串对象。合理的解决方案是在将区域设置传递给日期选择器之前,将其传递给SimpleDataFormat: Da

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

不幸的是,JXDatePicker依赖于旧的Java日期和时间类,包括日期和日期格式。这是不幸的,因为它们的设计很差,5年前被现代java日期和时间API java.time取代。您可能需要研究是否可以找到更现代的日期选择器组件来替换它

否则,JXDatePicker.setFormats确实需要DateFormat对象或字符串对象。合理的解决方案是在将区域设置传递给日期选择器之前,将其传递给SimpleDataFormat:

    DateFormat dateFormat = new SimpleDateFormat("E, yyyy-MM-dd", Locale.ENGLISH);        
要格式化从日期选择器获取的日期,可以选择在格式化之前将其转换为现代类型:

    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指定英语区域设置可确保格式化日期具有英语中“星期几”的缩写,例如:

2019年8月5日星期一

链接 解释如何使用java.time。
链接到提供此日期选择器的项目,或者至少说它是包的完全限定名称。Lemme guess,?提示:在堆栈溢出和其他地方发布时,请遵循Java命名约定。变量名以小写字母开头。它使你的读者更容易阅读。特别令人困惑的是,您有一个字符串类型的变量,它与类Date同名。我建议用datePicker代替DateDP,用dateString代替Date。对此我深表歉意,并感谢您提供的提示: