Couldn't translate Date to spanish with Locale("es_ES")

date, java, locale

Solution

"es_ES" is a language + country. You must specify each part separately.

The constructors for `Locale` are:

- Locale(String language) Construct a locale from a language code.

- Locale(String language, String country) Construct a locale from language, country.

- Locale(String language, String country, String variant) Construct a locale from language, country, variant.

You want `new Locale("es", "ES");` to get the Locale that goes with es_ES.

However, it would be better to use `Locale.forLanguageTag("es-ES")`, using the well-formed IETF BCP 47 language tag `es-ES` (with `-` instead of `_`), since that method can return a cached `Locale`, instead of always creating a new one.

Problem

I'm trying to do a simple date format, it does work great, it's very easy, but the problem is the language. I used the locale "es_ES" to get "Miércoles" instead of "Wednesday" and sorts like that but i failed. Here's my code: ``` SimpleDateFormat formato = new SimpleDateFormat("EEEE d 'de' MMMM 'de' yyyy", new Locale("es_ES")); String fecha = formato.format(new Date()); ``` The EXPECTED value of the `fecha` string is: Miércoles 4 de Abril de 2012 but i'm still getting: Wednesday 4 de April de 2012 What am I doing wrong?

Original source