Я - задача изменить формат даты в соответствии с языком пользователя. В настоящее время сайт работает на китайском и английском языках, однако я не могу изменить формат маски в соответствии с языком пользователя.Несколько Dateformat
<h:outputText styleClass="outputText"
id="index_output_todate" value="#{msg.index_output_todate}">
</h:outputText>
<p:calendar value="#{pc_Index.w_message.am_todate_filter}"
id="index_input_todate" styleClass="calendar" maxlength="10"
pattern="#{pc_Index.dateDisplayFormat}" onfocus="$(this).mask('9999年99月99日');">
<p:watermark for="index_input_todate" value="#{pc_Index.watermarkDateDisplayFormat}" />
<f:convertDateTime pattern="#{pc_Index.dateDisplayFormat}" />
</p:calendar>
мне нужно формат даты маски будет 9999 年 99 月 99 日, когда пользователь Войти как пользователь zh_CN или формате даты ДД/ММ/ГГГГ для пользователя en_UK. Есть ли способ сделать это?
Я уже установить локаль
public String getDateDisplayFormat() {
String locale = getUserLocale();
String DATEFORMAT_UK = "dd/MM/yyyy";
String DATEFORMAT_US = "mm/dd/yyyy";
String DATEFORMAT_CN = "yyyy年MM月dd日";
String _s = DATEFORMAT_UK;
if(!isEmptyNull(locale) && locale.equals("en_US")) {
_s = DATEFORMAT_US;
}
else if(!isEmptyNull(locale) && locale.equals("zh_CN")) {
_s = DATEFORMAT_CN;
}
return _s;
}
EDIT:
HTML
<h:form> <p:outputLabel for="index_output_frdate" value="#{msg.index_output_frdate}" />
<p:calendar id="index_output_frdate" value="#{pc_Index.w_message.am_todate_filter}"
styleClass="calendar" maxlength="10"
pattern="#{pc_Index.dateDisplayFormat}" mask="true" />
<p:watermark for="index_output_frdate" value="#{pc_Index.watermarkDateDisplayFormat}" /> </h:form>
Управление Bean:
if (isPageFirstLoad(JSP)) {
_w.setIndex_viewtype("11961003");
if (isEmptyNull(_w.getAm_todate_filter())) {
_w.setAm_todate_filter(getTodayDate());
}
Date _todate = _w.getAm_todate_filter();
Date d = _w.addDaysToDate(_todate, -7);
_w.setAm_frdate_filter(d);
_w.setViewNew(true);
_w.populateAlertsMessages();
}
if (this.trigger_viewtype_change) {
this.trigger_viewtype_change = false;
}
}
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getDateDisplayFormat() {
String locale = getUserLocale(); //WARNING!! Hard-coded!!
final String DATEFORMAT_UK = "dd/MM/yyyy";
final String DATEFORMAT_US = "mm/dd/yyyy";
final String DATEFORMAT_CN = "yyyy年MM月dd日";
if(!locale.isEmpty() && locale.equals("en_US")) {
return DATEFORMAT_US;
}
if(!locale.isEmpty() && locale.equals("zh_CN")) {
return DATEFORMAT_CN;
}
return DATEFORMAT_UK;
}
Кажется, что-то не так. но маска просто не появляется
Маска не кажется, работает. Кажется, что ничего не появляется, когда я сосредоточен на этом. – magictomage
попробуйте удалить значение, и оно должно иметь пустое пространство, подобное этому ____ __ __ __ __ __ 日 – magictomage
Извините, но я не понимаю, где проблема. Такое поведение является правильным. Маска помещает символы подчеркивания (_) в места, которые необходимо заполнить. – Miguel