1 回答
TA贡献1951条经验 获得超3个赞
不幸的是JXDatePicker,它依赖于旧的 Java 日期和时间类,包括Date和DateFormat。不幸的是,它们的设计很糟糕,后来(5 年前)被现代 Java 日期和时间 API java.time 所取代。您可能想研究是否可以找到更现代的日期选择器组件来替换它。
如果做不到这一点,JXDatePicker.setFormats则需要DateFormat对象或String对象。合理的解决方案是在将 a 传递给日期选择器之前将其传递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确保格式化日期具有英语中星期几的缩写,例如:
2019-08-05 星期一
添加回答
举报