在 GWT 中指定自定义货币、数字和日期时间格式的好方法是啥?
Posted
技术标签:
【中文标题】在 GWT 中指定自定义货币、数字和日期时间格式的好方法是啥?【英文标题】:What are good ways in which to specify custom currency, number and datetime formats in GWT?在 GWT 中指定自定义货币、数字和日期时间格式的好方法是什么? 【发布时间】:2009-06-03 18:30:47 【问题描述】:我有一个 GWT 项目,我需要在其中手动指定货币、数字和日期时间格式。这些自定义包括指定货币符号、分组分隔符、小数分隔符、负数格式等。实现这一点的最佳方法是什么?
我应该使用 GWT NumberFormat 类吗? NumberFormat 广泛使用 GWT 国际化结构,如 Constants 接口等。因此,如果您指定自定义数字格式掩码,它仍会查看当前语言环境并使用指定的货币符号、十进制符号和千位分隔符在后期绑定和国际化的“NumberFormat”实例中。
我的问题是:你将如何做到这一点?你会重新实现NumberFormat
的功能吗?您会从它派生并使用受保护的构造函数并将其传递给您自己创建的某种自定义NumberConstant
s 实例吗?如何获取 i18n NumberConstants 实例,并使用它来填充您自己的实例并仅覆盖您想要的?
你会如何解决这个问题?
【问题讨论】:
【参考方案1】:我已使用 NumberFormat.getFormat(String format) 进行自定义货币格式(删除 $ 符号前的“US”)。
在我的应用程序中,我将结果放入公共常量中。我已将“格式”参数存储在 i18n 资源包以及所有 UI 特定字符串中。
【讨论】:
我最终做了类似的事情。必须有各种奇怪的技巧,但现在可以了。【参考方案2】: 公共类 MyNumberFormat 扩展 NumberFormat 私有静态 CurrencyCodeMapConstants currencyCodeMapConstants = GWT.create(CurrencyCodeMapConstants.class); protected MyNumberFormat(字符串模式,CurrencyData cdata, 布尔用户供应模式) 超级(模式,cdata,userSuppliedPattern); 公共静态 NumberFormat getCurrencyFormat(String currencyCode) 返回新的 MyNumberFormat(defaultNumberConstants.currencyPattern(), 查找货币(货币代码),假); 私人静态货币数据查找货币(字符串货币代码) CurrencyData currencyData = CurrencyList.get().lookup(currencyCode); 映射currencyMap = currencyCodeMapConstants.currencyMap(); 字符串代码 = currencyData.getCurrencyCode(); //字符串符号 = currencyData.getCurrencySymbol(); 字符串符号 = currencyMap.get(currencyCode); int fractionDigits = currencyData.getDefaultFractionDigits(); 字符串portableSymbol = currencyData.getPortableCurrencySymbol(); 返回到CurrencyData(代码,符号,fractionDigits,portableSymbol); public static native CurrencyData toCurrencyData(String code, String symbol, int fractionDigits, StringportableSymbol) /*- 返回[代码,符号,fractionDigits,portableSymbol]; -*/;我可以在 GXT 网格中使用
column = new ColumnConfig("precioventa", constants.modeloPrendaPrecioVenta(), 100); column.setAlignment(HorizontalAlignment.RIGHT); column.setNumberFormat(MyNumberFormat.getCurrencyFormat("PEN")); 列。添加(列);【讨论】:
您想解释一下为什么会这样吗?它有什么不同?以上是关于在 GWT 中指定自定义货币、数字和日期时间格式的好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Play Framework v2 中指定自定义数据库连接参数以进行测试?
Rails 4,通过连接表在has_many中指定自定义外键?