根据秋千中的区域设置更改工作日

时间:2014-02-05 08:59:20

标签: java swing

我正在开发一个可以用英语和德语运行的应用程序(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);

2 个答案:

答案 0 :(得分:0)

您需要查看JDatePickerImpl的API,看看它是否有办法设置周开始日。如果它以与为每个区域设置值设置日期格式相同的方式调用该方法。

如果它没有那么你可以使用那个特定的日期选择器做任何事情。您需要制作自己的变体或使用不同的日期选择器。

答案 1 :(得分:0)

将这些行添加到您的代码中,并根据您的要求设置Locale。默认情况下,系统区域设置正在被选中。

datePicker.setLocale(new Locale("es", "ES"));
datePicker.setDateFormat(DateFormat.FULL);

了解更多info