我显示日期范围如下:
public static void main(String[] args) {
Locale.setDefault(new Locale("nl", "NL"));
DateTime d1 = new DateTime();
DateTime d2 = new DateTime().plusDays(30);
final String s1 = d1.toString(DateTimeFormat.shortDate());
final String s2 = d2.toString(DateTimeFormat.shortDate());
System.out.println(s1 + "-" + s2); // shows "4/05/12-3/06/12" for en_AU
System.out.println(s1 + "-" + s2); // shows "4-5-12-3-6-12" for nl_NL
}
对于荷兰的用户,他们看到的是“4-5-12-3-6-12”。这很令人困惑。
显示日期范围的一种方式是考虑用户的语言环境?
最佳答案
在本地化的应用程序中,这种分离将由翻译人员在翻译您的资源包时决定:
#foo.properties
#comment: a date range
dateRange={0,date}-{1,date}
可能成为:
#foo_en.properties
dateRange={0,date} to {1,date}
然后可以使用MessageFormat类型进行处理。形式的东西:
//untested code
MessageFormat mf = new MessageFormat(formatString, locale);
//java.util.Date instances
Object[] range = {date1, date2};
String result = mf.format(range);
即使您没有提供完整的翻译,这种方法也可能适用于某些本地化版本。
关于java - I18N友好的显示日期范围的方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10449487/