当我尝试在 JSF primefaces 日历中添加对语言环境的支持时,我遇到了一些问题。
我正在传递语言环境并且还添加了用于日历 UI 支持的语言环境 js 文件。但是当用户从日历中选择日期&之后,我有下面的java代码来解析日期&来验证日期。
当前语言环境:fr 假设用户从 UI 日历中选择“21-Aoû-2015”。但是对于java日期格式
"21-Aug-2015" in fr locale is "21-août-2015".
相似地 :
"10-Apr-2019" is "10-avr.-2019"
我正在使用下面的代码和选定的语言环境是“fr”:
Date date = null;
boolean isDateValid = false;
for (String pattern : patterns) {
DateFormat df = new SimpleDateFormat(pattern, locale);
try {
date = df.parse(value);
String newDateString = df.format(date);
System.out.println(newDateString);
isDateValid = true;
break;
} catch (ParseException e) {
e.printStackTrace();
}
}
System.out.println("Date : " + date);
所以,我发现的主要原因是 java DateFormat 解析不匹配。即:当区域设置为“fr”法语时。
Java解析:
对于“fr”语言环境 -
八月 => "août" 而不是 "Aoû"
四月 => “平均” 而不是“AVR”