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?
“es_ES” is a language + country. You must specify each part separately.
The constructors for
Localeare:Construct a locale from a language code.
Construct a locale from language, country.
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 tages-ES(with-instead of_), since that method can return a cachedLocale, instead of always creating a new one.