使用区域设置 ID 时应该使用 _(下划线)还是 -(破折号)?

Sun*_*dar 5 java localization

为什么会java.util.Locale.US显示en_US?当我们构造时,为什么需要将其传递为en-US

这些有什么区别呢?

mar*_*wun 5

您经常看到这两个版本。但是,RFC 5646(属于 IETF BCP 47 文档系列的一部分)规定连字符作为分隔符。Java似乎允许这两个版本:

格式正确的变体值的形式为SUBTAG (('_'|'-') SUBTAG)*where SUBTAG = [0-9][0-9a-zA-Z]{3} | [0-9a-zA-Z]{5,8}。(注意:BCP 47 仅使用连字符('-')作为分隔符,这样比较宽松)。