我目前正在使用 LocaleContextHolder.getLocale() 来获取语言环境。
但问题是,有时它会返回没有国家代码的语言代码。
例如:有时en_US有时仅en
可能的原因是什么?
仅供参考:运行环境是:Java11,spring5.3.9。
如何确保 getLocale() 方法应该返回 lang-code_country-code (en_US) ?
任何帮助将不胜感激 !
简化问题陈述
在并行流中使用 LocaleContextHolder.getLocale() 时,LocaleContextHolder.getLocale() 为子线程提供不同的语言环境。例如,对于主线程en_us和其他线程en。
contacts.parallelStream().forEach(contact -> {
Locale locale = LocaleContextHolder.getLocale();
//some work....
});
输出线程
nio-8080:en_US,onPool-worker:en,......,onPool-worker:en