en_US or en-US, which one should you use? [duplicate]
I'm pretty sure "-" is the standard. If you see "_" somewhere it's probably something some people came up with to make it a valid identifier.
Personally I'd go with "-", just to be correct.
http://en.wikipedia.org/wiki/IETF_language_tag
https://datatracker.ietf.org/doc/html/rfc5646
If you're working with Java, you might as well use the Java locale format (en_US
).
The BCP 47 documents actually do specify the en-US
format, and it's just as common if not more common than Java-style locale names. But in practice you'll see the form with the underbar quite a bit. For example, both Java and most POSIX-type platforms use the underbar for their language/region separator.
So you can't go far wrong with either choice. But given that you're writing in Java and probably targeting a Unix platform, en_US
is probably the way to go.
In Java 7, there is a new method Locale.forLanguageTag(String)
, which assumes the hyphen as a separator. I'd consider that as normative.
Check the documentation of Locale for more information.