Могу ли я получить текстовое описание кода валюты ISO в Java? - PullRequest
9 голосов
/ 22 сентября 2009

Есть ли способ получить текстовое описание валюты, представленной объектом Currency в Java?

т.е. У меня есть AZM, я хочу азербайджанский манат

Ответы [ 6 ]

4 голосов
/ 22 сентября 2009

Такое сопоставление снова будет Locale -зависимым ... Я думаю, что вам лучше всего было бы внимательно взглянуть на ISO 4217 и создать Map из кода валюты в название валюты .

3 голосов
/ 21 октября 2011

Класс java.util.Currency реализует это начиная с Java 1.7.

    Currency curr = Currency.getInstance("AZM");
    System.out.println(curr.getCurrencyCode()); // AZM
    System.out.println(curr.getNumericCode());  // 31
    System.out.println(curr.getDisplayName());  // Azerbaijani Manat (1993-2006)

К сожалению, этот класс все еще далек от юзабилити ... например отсутствует конструктор из numericCode, некоторые отображения displayNames не являются событиями DisplayName, ...

3 голосов
/ 22 сентября 2009

Это не поддерживается Java, но некоторые библиотеки могут сделать это.

Мой выбор номер один будет ICU,

http://icu -project.org / apiref / ICU4J / ком / IBM / СИС / Util / Currency.html # GetName% 28java.util.Locale,% 20int,% 20boolean []% 29

Этот звонок может получить название валюты в нескольких локалях. ICU также поддерживает все другие функции i18n, недоступные в JRE. Тем не менее, он довольно большой.

Другой вариант - jPOS,

http://gl.jpos.org/

Если вы что-то делаете с финансовыми данными, это стандарты де-факто. Следите за его лицензией. Нашим юристам это почему-то не понравилось.

2 голосов
/ 22 сентября 2009

Вам нужно будет настроить собственное отображение. Вопросы Google или Stackoverflow будут указывать на сайт ISO

Однако вам придется очистить страницу, так как, похоже, нет XML или текстового файла, как для страны

2 голосов
/ 22 сентября 2009

Не в стандартном API. Данные, стоящие за классом Currency, загружаются из закрытого пакета java.util.CurrencyData, и там просто нет текстового описания. Вы можете посмотреть его, если у вас есть исходный код, установленный вместе с вашим JDK.

1 голос
/ 31 июля 2012

openexchangerates.org предоставляет эту информацию в режиме реального времени в машиночитаемом формате JSON:

http://openexchangerates.org/api/currencies.json

Возвращает информацию так просто:

{
  "AED": "United Arab Emirates Dirham",
  "AFN": "Afghan Afghani",

  ...

  "ZMK": "Zambian Kwacha",
  "ZWL": "Zimbabwean Dollar"
}

Это почти бесплатно, но есть некоторые условия. Вот онлайн-документация.

...