0

我想本地化我的独立应用程序,即如果我们将 GMT 时区更改为美国,那么我的所有应用程序的货币格式、时间格式、数字格式都应该更改为美国格式,所以有人可以告诉我基本的基本查找吗?需要通过,因为我在这个国际化中是 0,所以请指导我....我正在开发的桌面应用程序是 java & hibernate 中的 INDIAN Hospital ERP,用于数据库访问。

4

1 回答 1

2

每当您使用 Java 时,无论是桌面、移动还是 Web 应用程序,您应该关心的是使用 Locale(s)。也就是说,您应该检测它们。

如果要将数据更改为区域设置感知,则需要使用以下(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);

在任何情况下,您都不应该将其与时区联系起来。例如,美国有几个时区,所以这真的没有意义。您必须检查这是否是美国时区(这不是最容易做的事情)并做一些糟糕的事情,例如分配默认语言环境(这将为在此 JVM 上运行的每个程序分配语言环境,非常糟糕的主意)。只检测语言环境就足够了(这实际上是 i18n 的最佳实践)。

于 2013-06-01T11:39:00.100 回答