Tag: locale

是否有另一种方法来检索给定语言环境的默认模式?

是否可以检索给定语言环境的默认模式,而不将DateFormat.get*Instance()返回的对象转换为SimpleDateFormat ? 我理解,在大多数情况下一切都会好的,但是在javadoc有一个注释, 这里 :“如果你想要更多地控制格式或解析,(或者想让你的用户更多地控制),你可以试试从工厂方法到SimpleDateFormat的DateFormat 。这适用于大多数国家; 只要记住将它放在try块中,以防遇到exception的问题 。“ 所以我想知道,如果我遇到一个不寻常的人 ,我该怎么办? 相关主题。 代码示例: /** * Returns ‘\n’-separated string with available patterns. * Optional adds appropriate language code to each pattern string. * * @param showLanguage Defines if language info is required. * @return String with available patterns, optional (if showLanguage is set * to “true”) adds […]

在Java中,为什么小数分隔符遵循Locale的语言,而不是其国家/地区,更重要的是,如何覆盖它?

我正在开展一个国际项目,并且观察到,在Java中,小数分隔符的选择基于Locale的语言,而不是其国家。 例如: DecimalFormat currencyFormatter = (DecimalFormat) NumberFormat.getInstance(new Locale(“it”,”IT”)); System.out.println(currencyFormatter.format(-123456.78)); currencyFormatter = (DecimalFormat) NumberFormat.getInstance(new Locale(“en”,”IT”)); System.out.println(currencyFormatter.format(-123456.78)); 产生以下输出: -123.456,78 -123,456.78 我原本期望它跟随这个国家,因为如果我在国内,无论我说英语还是意大利语,那个国家的数字都用小数点分隔符写成逗号。 我的问题是双重的: 有谁知道为什么这种行为遵循语言? 更重要的是,任何人都可以提供有关如何修改Java中的默认行为以遵循该语言的详细信息吗? 谢谢。

将语言环境正确设置为JFileChooser

我在运行时更改Locale时遇到了一些问题。 目标 我必须根据配置文件更改我的应用程序语言的Locale。 此语言环境不一定与主机/ OS语言环境和JVM默认语言环境相同。 而且,当我调用应用程序时,我无法修改user.language 。 然后,我必须在运行时这样做。 问题 总结我的代码,我读取配置文件并获取不同的选项(包括语言环境)。 之后,我根据这些配置的选项初始化应用程序环境。 之后,我构建我的框架并启动应用程序生命周期。 public static void main(String[] args) { File fichier; Ini ini; //Ini4J object Modele modele = new Modele(); //My Model class: it stores configuration and other stuff try { fichier = new File(Modele.CONFIGURATION); ini = new Ini(fichier); modele.setLocaleLang(ini.get(Modele.LOCALE, Modele.LANG, String.class)); // read more options […]

Java Swing – 本地化温度

有没有办法在Java中本地化温度? 像温度格式会根据语言环境? 例如,对于挪威语,温度格式应为14°C。 在度符号之前应该有一个空格。 但其他语言应为14°C。

Struts2 DateTimePicker是否允许使用特定的区域设置和时区输入日期和时间?

Struts2 DateTimePicker是否支持指定不同的语言环境和时区? 我认为它考虑了请求指定的Locale,但我没有看到文档中任何地方特别提到的。 我也没有看到它表明对时区有任何支持。

为什么设置currencyCode时jstl的formatNumber货币符号区域设置是特定的

我正在使用formatNumber如下: 如果我在locale en_US并且货币代码是EUR,我将EUR作为符号,但如果我在locale en_GB,我会得到€ 。 为什么要考虑区域设置? 欧元不应该总是兑换成€ ? 反正有没有得到我期望使用formatNumber的行为?

java.util.Locale有一个空的第一项

我试图从JVM获取所有语言环境以填充国家/地区下拉列表。 第一项是空的非null对象。 它不是null,因为我使用TreeMap集合添加国家缩写和(可显示)名称。 看下面看看这个系列是什么。 {=, AE=United Arab Emirates, AL=Albania, AR=Argentina, AT=Austria, AU=Australia, BA=Bosnia and Herzegovina, BE=Belgium, BG=Bulgaria, BH=Bahrain, BO=Bolivia, BR=Brazil,…. 这是代码。 我删除该空对象以确保第一个值不为空。 public Map countries(Locale currentLocale) { Map countries = new TreeMap(); for (Locale locale : Locale.getAvailableLocales()) { countries.put(locale.getCountry(), locale.getDisplayCountry(currentLocale)); } countries.remove(“”); return countries; } JVM版本 – (build 1.7.0_09-b05)

Java Scanner究竟是如何解析的?

我正在使用Windows 7机器,其“控制面板\时钟,语言和地区”是“丹麦” 根据Scanner的文档: 扫描程序的初始语言环境是Locale.getDefault()方法返回的值; 但是当我运行代码时: System.out.println(Locale.getDefault()); Scanner sc = new Scanner(“1.0”); sc.nextDouble(); 它输出“en_US”,然后在sc.nextDouble()处抛出java.util.InputMismatchException。 扫描仪初始化为“1,0”时有效 但是,如果我明确设置了Locale: Locale.setDefault(Locale.US); System.out.println(Locale.getDefault()); Scanner sc = new Scanner(“1.0”); sc.nextDouble(); 它输出“en_US”然后解析双精度就好了。 我错过了什么,或扫描仪的文档是错误的? 编辑根据@Perception的建议,我在第一个例子中查看了sc.locale()。 它打印“da_DK”。 那么为什么它不是“en_US”,那么Locale.getDefault()方法返回的是什么?

如何从HttpServletRequest获取Java中的客户端时区?

当服务器和客户端位于不同的时区时,我可以使用HttpServletRequest在java中获取客户端的时区吗? 我正在尝试使用客户端的’Locale’创建一个’Calender’实例, Calendar calendar = Calendar.getInstance(request.getLocale()); TimeZone clientTimeZone = calendar.getTimeZone(); 但这只是给我服务器的时区。 这种方法有误吗? 有没有其他方法可以在服务器中获取客户端的时区?

如何从Locale获取当前时间和时区?

我有这个奇怪的问题,当我创建一个带语言环境的日历时,TimeZone只是恢复到本地日历 public void start(Locale locale){ String s = locale.getDisplayName(); System.err.println(s); Calendar c = new GregorianCalendar(locale); System.err.println(c.getTimeZone()); } 这是输出: español (Argentina) sun.util.calendar.ZoneInfo[id=”Europe/Bucharest”, //etc more useless date here…. 如何从特定区域获得适当的时间?