我正在尝试做一个简单的日期格式,它确实很好用,非常简单,但问题在于语言。我使用语言环境“es_ES”来获取“Miércoles”而不是“Wednesday”,但我失败了。
这是我的代码:
SimpleDateFormat formato =
new SimpleDateFormat("EEEE d 'de' MMMM 'de' yyyy", new Locale("es_ES"));
String fecha = formato.format(new Date());
fecha
字符串的预期值为:
Miércoles 4 de Abril de 2012
但我仍然得到:
Wednesday 4 de April de 2012
我做错了什么?
最佳答案
“es_ES”是一种语言+国家。您必须分别指定每个部分。
Locale
的构造函数是:
- Locale(String language)
根据语言代码构建语言环境。 - Locale(String language, String country)
根据语言、国家/地区构建语言环境。 - Locale(String language, String country, String variant)
根据语言、国家/地区、变体构建语言环境。
您希望 new Locale("es", "ES");
获取与 es_ES 一起使用的 Locale。
但是,最好使用 Locale.forLanguageTag("es-ES")
,使用格式良好的 IETF BCP 47 语言标签 es-ES
(使用 -
而不是 _
),因为该方法可以返回缓存的Locale
,而不是总是创建一个新的。
关于java - 无法使用 Locale ("es_ES"将日期翻译成西类牙语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10019050/