Sud*_*hir 27 java windows locale properties system
从java代码中了解操作系统语言(语言环境)的正确方法是什么?
我试过了
Locale.getDefault()
System.getProperties("user.language")
Run Code Online (Sandbox Code Playgroud)
等等
但它们不正确没有实际显示"系统区域设置",它可以通过Windows中的命令"systeminfo"获得.
请帮忙.
Ste*_*n C 30
Windows XP systeminfo命令显示了很多内容,但相关信息如下:
System Locale: en-us;English (United States)
Input Locale: en-us;English (United States)
Run Code Online (Sandbox Code Playgroud)
要获得相同的信息在Java中,使用Locale.getDefault()来获得Java已使用的语言环境和使用方法的Locale对象上,例如getCountry(),getLanguage()以获得详细信息.该信息可使用ISO代码和人类可读/可显示的名称获得.
请注意,它Locale.getDefault()为您提供了Java在启动时从环境中获取的语言环境,这可能与"系统"语言环境相同或不同.要明确获得Java中的"系统"语言环境,您需要执行特定于平台的事情.IMO,确保Java开始使用系统区域设置更简单...如果您真的需要这些信息.
更新: 显然,Java 7改变了getDefault()在Windows上确定使用的语言环境信息的方式; 请参阅/sf/answers/582392261/
Mar*_*erg 14
关于什么
System.getProperty("user.country");
System.getProperty("user.language");
Run Code Online (Sandbox Code Playgroud)
在我的情况下返回
user.country = DE
user.language = DE
您可以轻松地从此信息生成区域设置.本地是'语言'_'国家'所以在我的情况下de_DE
如何使用默认语言环境?
Locale locale = Locale.getDefault();
String lang = locale.getDisplayLanguage();
String country = locale.getDisplayCountry();
Run Code Online (Sandbox Code Playgroud)
这将根据Windows systeminfo命令返回我当前的语言和国家/地区.这是你在找什么?(如果你想要语言/国家的2个字符的代码,你可以使用getLanguage()或getCountry()).
| 归档时间: |
|
| 查看次数: |
87809 次 |
| 最近记录: |