次のコードは、私の問題を説明するのに役立ちます。
import java.util.Locale;
import java.text.*;
public class LocaleTest {
public static void main(String[] args) {
System.out.println(Locale.getDefault());
System.out.println("java-version-" +System.getProperty("java.version"));
System.setProperty("sun.locale.formatasdefault","true");
System.out.println("prop:" +System.getProperty("sun.locale.formatasdefault"));
System.out.println("getLocale-" +Locale.getDefault());
}
}
ご存知のとおり、Java 7にはLocale.getDefault()にバグがあります。ただし、Oracleが推奨するように、システムプロパティ「sun.locale.formatasdefault」をtrueに設定しました。m / cロケールを取得していますが、m / cロケールがfr_BEに設定されていても、常にen_USとして表示されます。
上記のコードの出力は次のとおりです。これは、Java1.7.0_09でコンパイルおよび実行されます。
en_US java-version-1.7.0_09 prop:true getLocale-en_US
このように何が原因であるかについての考えはありますか?よろしくお願いします。