安卓:如何为应用程序设置文化价值观

3

我是一名C#开发人员,现在开始编写Android应用程序。在C#中,我们有CultureInfo对象,可以设置应用程序的文化值。在Java(Android)中是否有类似的对象可以让我这样做?我发现可以使用Locale.setDefault(Locale.FRENCH)来设置语言环境,但是如何设置日期、数字和货币符号呢?

以下是我在C#中使用的代码:

CultureInfo objCultureInfo = new CultureInfo("en-US", true);
objCultureInfo.NumberFormat.NumberDecimalDigits = 2;
objCultureInfo.NumberFormat.NumberDecimalSeparator = ".";
objCultureInfo.NumberFormat.NumberGroupSeparator = ",";
objCultureInfo.DateTimeFormat.DateSeparator = "/";
objCultureInfo.DateTimeFormat.TimeSeparator = ":";
objCultureInfo.DateTimeFormat.FullDateTimePattern = "MM/dd/yyyy HH:mm:ss";
objCultureInfo.DateTimeFormat.ShortDatePattern = "MM/dd/yyyy";
objCultureInfo.DateTimeFormat.ShortTimePattern = "HH:mm:ss";
objCultureInfo.NumberFormat.CurrencySymbol = "$";
Cultura.CulturaAplicacion = objCultureInfo;

谢谢!

2个回答

2

在我看来,你不应该改变Locale值。用户在设置中全局设定了此值。您还可以在那里设置日期和时间格式。您应该在应用程序中使用这些值,而不是用自定义值覆盖它们,因为用户更清楚自己想要使用哪种语言和格式。


好的,但是如果我想知道用户在移动设备上设置了什么类型的数字小数分隔符,或者以哪种格式查看日期?我问这个问题是因为我必须以特定的方式保存浮点数、长数字和日期,所以必须在保存之前对值进行格式化和转换。 - Ramiro Nava Castro
我同意Henrik的观点,如果你的应用程序变成多语言,那么可能会遇到很大的问题。 如果有特定的格式需要使用,请确定自己预先设定的语言设置,并让用户区域设置处理所有显示格式。 如果没有任何区域支持您首选的本地存储设置,请手动格式化或创建自己的格式化程序,而不是更改现有的区域设置。 - Timothy Groote

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接