我想本地化我的独立应用程序,即如果我们将GMT时区更改为US,那么我的所有应用程序的货币格式,时间格式,数字格式都应该更改为美国格式,所以有人可以告诉我必要的基本查找我需要通过,因为我在这个国际化中是0,所以请指导我....我正在开发的桌面应用程序是java和IND的INDIAN医院ERP hibernate用于数据库访问。
答案 0 :(得分:2)
无论何时使用Java,无论是桌面,移动还是Web应用程序,您应该关注的是使用区域设置。也就是说,你应该检测它们。
如果要将数据更改为可识别区域设置,则需要使用以下(Java 7)
// Detecting locale in desktop application
Locale fmtLocale = Locale.getDefault(LocaleCategory.FORMAT);
DateFormat dateFmt = DateFormat.getDateTimeInstance(
DateFormat.DEFAULT, DateFormat.DEFAULT, fmtLocale);
dateFmt.setTimeZone(theTimeZone); // ommited
Date now = new Date();
String formattedDate = dateFmt.format(now);
// do something with formatted date
// Similarily for numbers, percentages and currencies
NumberFormat numberFmt = NumberFormat.getInstance(fmtLocale);
NumberFormat percentFmt = NumberFormat.getPercentInstance(fmtLocale);
NumberFomrat currencyFmt = NumberFormat.getCurrencyInstance(fmtLocale);
在任何情况下,您都不应该将其与时区联系起来。例如,美国有几个时区,所以它确实没有意义。您必须检查这是否是美国时区(这不是最容易做的事情)并做一些非常糟糕的事情,比如分配默认的Locale(它将为在此JVM上运行的每个程序分配Locale ,非常糟糕的主意)。 只检测Locale就足够了(这实际上是i18n的最佳实践)。