如何在java中获取用户的操作系统区域设置

时间:2016-03-18 07:23:17

标签: java spring-mvc

任何人都可以告诉我如何获取用户在Java中的操作系统区域设置。我正在使用Spring MVC创建具有国际化支持的Web应用程序,因此我需要 retreive 用户操作系统的区域设置

我已尝试Locale.getDefault(),但即使我的系统的区域设置为en-US

,它也始终为fr-FR提供值

我知道如何从用户的浏览器中获取语言(使用Accept Header),但我需要阅读操作系统语言设置。

3 个答案:

答案 0 :(得分:1)

Locale.getDefault()将获取服务器的区域设置,因此绝对不是您想要的。

Accept-Language HTTP标头将指定客户端可接受的语言,这可能是Web浏览器通过查看客户端的操作系统语言来完成的。

然后,您必须解析该值,以便为您的Web应用程序找到匹配的区域设置。

答案 1 :(得分:0)

如果您想查找网络请求用户的区域设置,请尝试https://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getLocale()

答案 2 :(得分:0)

我们正在谈论Web应用程序,因此一般而言,您对用户的了解都是HTTP请求提供的(这是一种简化,但作为一般规则)。 HTTP请求提供的语言是Accept-Language标头,仅此而已。这是您可以获得的特定于浏览器的设置。获取Web用户的操作系统语言不是你给的,所以不,你不能得到它。

(有一些解决方法,例如,如果你想运行一个java applet来找到它,它可能是可能的。但是,这将是我建议反对的路径。)