使用 IBM Rational Application Developer 轻松实现 JavaServer Faces Web 程序的全球化
2009-10-08 00:00:00 来源:WEB开发网“format:EEEE, MMMM d, yyyy h:mm:ss a z” 意味着 DateTimeConverter 用于格式化日期/时间的模式。
到目前为止,我们已经向您展示了,您需要什么客户代码来格式化日期/时间。但这并不足够。考虑一下模式。您知道对于不同的场所模式会是什么样的吗?
例如,对于美国用户的模式是这样的:
EEEE,MMMM d,yyyy h:mm:ss a z
而日本客户的模式是这样的:
yyyy'年'M'月'd'日'EEEE H'時'mm'分'ss'秒'z
还好模式并不是硬代码的,因为开发员并不可能知道不同场所的所有模式。像 “yyyy mm dd”这样的模式对于某个开发员来说可能是合理的,但是对用户看来就是很古怪的 。
因此,答案就是从服务器端获取模式,因为 ICU4J 已经为所有开发员的使用准备好了模式。列表 4 中的代码展示了,我们怎样根据本地的请求获取一个模式:
列表 4. 通过使用 ICU4J 来生成日期/时间模式
public class FormatterUtils
{
public static String getDateTimePattern(int dateFormat)
{
Locale locale =
FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
CalendarData calData = new
CalendarData(ULocale.forLocale(locale), null);
String[] dateTimePatterns = calData.getStringArray("DateTimePatterns");
return dateTimePatterns[dateFormat + 4] + " " + dateTimePatterns[dateFormat];
}
}
参数 dateFormat 显示了格式模式使用的方法。基本上,在 ICU com.ibm.icu.text.DateFormat 类中有四种预定义的类型:
更多精彩
赞助商链接