【发布时间】:2015-03-06 10:10:22
【问题描述】:
我一直在为我的应用程序进行本地化,但似乎找不到任何有关如何处理来自不同本地人的十进制值和日期以存储在 sqllite 中的信息。
例如: 德国十进制 123,53 英国十进制 123.53
那么如何将edittext 字段转换为有效的小数。目前,我将代码输出到 textview 而不是 sql 仅用于测试。下面的代码在使用英国小数时效果很好,但如果我使用德国小数,它就会失败!!
Configuration sysConfig = getResources().getConfiguration();
Locale curLocale = sysConfig.locale;
NumberFormat nf = NumberFormat.getInstance(curLocale);
String convertedString = nf.format(Double.parseDouble(EditTextField.getText().toString()));
TextView showLocalisedNumeric;
showLocalisedNumeric = (TextView)findViewById(R.id.TestNumericValue);
showLocalisedNumeric.setText(convertedString);
我还没有开始使用日期,但我假设将日期转换为更直接。
【问题讨论】:
-
how to handle decimal values and dates from different locals to store in sqllite.- 以 SQLite 可以理解的格式存储值。对于日期,有效格式为Time String,如sqlite.org/lang_datefunc.html 中所定义。如何向用户展示它是另一个问题。您可能会使用SimpleDateFormat -
谢谢,但我已经了解这方面,我要问的是如何在不使用替换方法的情况下将其转换为例如 123,45 到 123.45 的格式
-
将十进制值存储在 REAL 字段中。然后使用DecimalFormat 向用户展示
标签: java android localization number-formatting