我正在开发一个可以用英语和德语运行的应用程序(Swing应用程序)。 有一个日期选择器要求,因为他们使用了来自(source forge.net)的JDatePickerImpl
现在的要求是,
如果应用程序以英语运行,则周开始日为星期日......星期六
如果应用程序以德语周开始,则工作日开始于周一......周日
但JDatePickerImpl显示星期日,星期一,........星期六
如何根据区域设置更改周开始日...
private JFormattedTextField.AbstractFormatter format =
new JFormattedTextField.AbstractFormatter(){
private static final long serialVersionUID = 1L;
@Override
public String valueToString(Object value) throws ParseException {
Calendar cal = (Calendar) value;
if (cal == null) {
return "";
}
return DateUtil.dateToString(
PlasaApplication.getTranslator().getCurrentLanguage()
.equals("de") ? DateUtil.germanDateFormat
: DateUtil.usDateFormat, cal.getTime());
}
@Override
public Object stringToValue(String text) throws ParseException {
return DateUtil.getDateFromString(text,
PlasaApplication.getTranslator().getCurrentLanguage()
.equals("de") ? DateUtil.germanDateFormat
: DateUtil.usDateFormat);
}
};
private JDatePickerImpl fromDatePicker = (JDatePickerImpl) JDateComponentFactory
.createJDatePicker(format);
private JDatePickerImpl toDatePicker = (JDatePickerImpl) JDateComponentFactory
.createJDatePicker(format);
答案 0 :(得分:0)
您需要查看JDatePickerImpl的API,看看它是否有办法设置周开始日。如果它以与为每个区域设置值设置日期格式相同的方式调用该方法。
如果它没有那么你可以使用那个特定的日期选择器做任何事情。您需要制作自己的变体或使用不同的日期选择器。
答案 1 :(得分:0)
将这些行添加到您的代码中,并根据您的要求设置Locale。默认情况下,系统区域设置正在被选中。
datePicker.setLocale(new Locale("es", "ES"));
datePicker.setDateFormat(DateFormat.FULL);
了解更多info。