Parsing error for French locale with SimpleDateFormat(string,locale)(使用SimpleDateFormat(字符串,区域设置)分析法语区域设置时出错)
问题描述
我的Java端有一段这样的代码:
private static DateFormat getHourFormatter(){
//DateFormatSymbols dateFormatSymbols = new DateFormatSymbols(_locale);
Locale locale = Locale.FRENCH; //locale : "fr"
DateFormat hourFormatter = new SimpleDateFormat( "hh:mm a",locale); //hourFormatter: simpleDateFormat@103068 locale: "fr"
hourFormatter.setTimeZone( TimeZone.getTimeZone("GMT") );
return hourFormatter; //hourFormatter: SimpleDateFormat@103068
}
protected static boolean isHoursTimeStringValid( String hourDisplay ) {
try {
getHourFormatter().parse( hourDisplay ); //hourDisplay: "01:01 Matin"
return true;
} catch (ParseException e) { //e: "java.text.ParseException: Upparseable date "01:01 Matin"
return false;
}
}
如果我将区域设置值更改为US,则它在英语区域设置下工作正常。
但对于法语区域设置,它引发分析错误。
java.ext.ParseException:可升级日期"01:01 Matin"
为了更好地理解,我已将调试信息添加为注释行
推荐答案
感谢大家的回答。
如前所述,我无法更改代码库。
所以,我所做的是:
public void setBeginAMPM( String ampm ) {
if(ampm.equals(new I18NStringFactory().getString("Calendar", _locale , "default.time.am" ))) {
_beginAMPM = "AM";
}
else if(ampm.equals(new I18NStringFactory().getString("Calendar", _locale , "default.time.pm" ))) {
_beginAMPM = "PM";
}
else{
_beginAMPM = ampm;
}
}
public void setEndAMPM( String ampm ) {
if(ampm.equals(new I18NStringFactory().getString("Calendar", _locale , "default.time.am" ))) {
_endAMPM = "AM";
}
else if(ampm.equals(new I18NStringFactory().getString("Calendar", _locale , "default.time.pm" ))) {
_endAMPM = "PM";
}
else{
_endAMPM = ampm;
}
}
_LOCALE值我从一个操作类传递到另一个类。如果它不是英语,它将进入If块之一,或者如果是英语,它将默认进入Else块。根据本地值,它从属性文件中获取AM/PM值并进行相应的转换。
我只是将AM/PM值从其他区域设置特定的语言修改为英语,因为SimpleDateFormat()仅支持英语。
你们可以称它为丑陋的黑客,但你猜怎么着,它解决了我的目的。
这篇关于使用SimpleDateFormat(字符串,区域设置)分析法语区域设置时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用SimpleDateFormat(字符串,区域设置)分析法语区


基础教程推荐
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- Struts2 URL 无法访问 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- 存储 20 位数字的数据类型 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01