java - 无法使用 Locale ("es_ES"将日期翻译成西类牙语)

标签 java date locale

我正在尝试做一个简单的日期格式,它确实很好用,非常简单,但问题在于语言。我使用语言环境“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 的构造函数是:

您希望 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/

相关文章:

java - 是否有支持管理类加载器的 Java IoC 容器?

java - 按姓氏排序

Java 自动装箱和拆箱问题

c++ - 在cout中禁用逗号?

java.text.ParseException : Unparseable date: "28.дек.2018"

java - 尝试在 Tomcat 中将 LDAP 配置为 JNDI 资源

ruby-on-rails - ruby on Rails time_ago_in_words 不显示几秒前

javascript - 始终使用 UTC+0 - 使用 javascript/angularjs 修复客户端浏览器上的自定义时区

android - 如何从 Sqlite ( android ) 中的日期时间字段获取日期

ios - 如何定义设备上的(24/12)小时格式?