Как я переопределяю Обозначения денежной единицы в Java?

Я попытался сделать это и получил исключение:

Параметр типа таблицы '@MyDataType' должен иметь правильное имя типа.

Мне нужно было установить свойство «TypeName» SqlParameter:

parameter.TypeName = "MyDataType";
9
задан user110665 21 May 2009 в 17:55
поделиться

4 ответа

Забавно, но, согласно Википедии, код валюты "TRL" устарел (старый код турецкой лиры). Я не обновлялся до последней версии jdk (1.5.0_10), но

Currency curr = Currency.getInstance ("TRL");
Локаль trLocale = новый Локаль ("tr", "TR");
System.out.println (curr.getSymbol (trLocale));

Печать:

TL

Так что, возможно, напишите что-нибудь свое, чтобы сопоставить существующие коды с устаревшими кодами и настроить и проверить по мере необходимости.

3
ответ дан 4 December 2019 в 21:11
поделиться

В среднем, пока вы ждете на Java:

System.out.println(curr.getSymbol(trLocale).substring(1));
0
ответ дан 4 December 2019 в 21:11
поделиться

В Java 7 вы можете переопределить валюты в файле свойств. Если вы полагаетесь на символ ISO-4217, его можно указать / переопределить.

2
ответ дан 4 December 2019 в 21:11
поделиться

Воскрешение для дальнейшего использования:

Вы можете использовать DecimalFormatSymbols для изменения валюты в целях форматирования

Locale trLocale = new Locale("tr", "TR");
DecimalFormat decimalFormat = (DecimalFormat) DecimalFormat.getCurrencyInstance(trLocale);
DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(trLocale);
dfs.setCurrencySymbol("TL");
decimalFormat.setDecimalFormatSymbols(dfs);

Или вы можете обратиться к SPI и подключить свой символ валюты (возможно, создав свой вариант страны, как new Locale("tr", "TR", "try")). Для этого вы должны предоставить реализацию java.util.spi.CurrencyNameProvider и зарегистрировать ее в механизме расширения Java. Посмотрите http://java.sun.com/javase/6/docs/api/java/util/spi/LocaleServiceProvider.html

5
ответ дан 4 December 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: