2012-01-29 56 views
3

)我是C#开发人员,现在我开始为android编程应用程序。在C#中,我们有CultureInfo对象,我们可以在其中设置应用程序文化的值。在java(android)中有一个类似的对象让我这样做?我发现我可以使用此Locale.setDefault(Locale.FRENCH)设置语言环境;但我如何设置日期,数字和monetaris符号¿?Android:如何为应用程序设置文化值

下面是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

在我看来,你不应该改变Locale的值。用户在设置中将此值设备设置得宽。您也可以在那里设置您的日期和时间格式。你应该在你的应用中使用这些值,而不是用自定义的值覆盖它们,因为用户知道的更好,他/她想要使用哪种语言和格式。

+0

好吧,但如果我想知道数字小数点分隔符的类型是由用户在他的移动设备中设置的或他看到日期的格式?我问这个,因为我必须以特定的方式和日期保存浮点数,长数字,所以必须在保存前格式化和变换值。 – 2012-01-29 21:08:13

+0

我与Henrik就此合作,如果您的应用使用多种语言,期望遇到重大问题。 如果您需要使用特定格式,请根据您自己的预定语言设置进行设置,并让用户设置的用户语言环境处理所有显示格式。 如果没有语言环境支持本地存储的首选设置,请手动进行格式设置或创建自己的格式化程序,而不是更改现有区域设置。 – 2012-01-31 11:13:08

相关问题