2009-05-21 2 views
9

자바로 터키 리라 (ISO 4217 통화 코드 TRY)로 가격을 인쇄하려고합니다.Java에서 통화 기호를 재정의하려면 어떻게합니까?

내가

Currency curr = Currency.getInstance("TRY"); 
Locale trLocale = new Locale("tr", "TR"); 
System.out.println(curr.getSymbol(trLocale)); 

을 수행 할 때 출력은 "YTL".

그러나 터키 리라의 통화 기호는 최근에 "YTL"에서 "TL"로 변경되었습니다 (터키 리라의 위키피디아 페이지에서 볼 수 있듯이). NumberFormat으로 서식을 지정하면 유사한 결과가 나타납니다.

특히 Java에 하나의 기본 제공이있는 경우 다른 Currency 클래스를 쓰고 싶지 않습니다.

TRY에 대한 Java의 기본 통화 기호를 "TL"로 대체하는 방법이 있습니까?

+2

이것은 즉시 도움이되지는 않지만 버그를 제기하고 다음 Java 업데이트에서 수정 될 것입니다. –

+1

통화에 대한 자체 래퍼를 만드는 것 외에는 다른 방법이 없습니다. Currency는 최종 클래스이므로 특정 사례에 대해 getSymbol을 재정의하도록 확장 할 수도 없습니다. YTL로 살고 버그를보고하거나 (다음 패치에서 수정되기를 바랍니다) 또는 자신의 솔루션을 구현하십시오. –

답변

2

Java 7의 경우 등록 정보 파일에서 override currencies을 사용할 수 있습니다. ISO-4217 기호를 사용하는 경우 해당 기호를 지정/재정의 할 수 있습니다. 평균 시간 동안

+1

하지만 속성 파일에는 ISO 4217 관련 정보 만 들어 있습니다. ISO 4217에는 통화 기호가 없습니다. – user110665

0

자바에서 기다리는 동안 :

System.out.println(curr.getSymbol(trLocale).substring(1)); 
3

재미있게, 위키 백과에 따르면, 통화 코드 "TRL은"오래된 (터키 리라에 대한 이전 코드)입니다. 나는 (1.5.0_10)에, 최신의 JDK로 업그레이드하지만하지 않은

Currency curr = Currency.getInstance("TRL");
Locale trLocale = new Locale("tr", "TR");
System.out.println(curr.getSymbol(trLocale));

인쇄 :

TL

그래서 아마 오래된 기존 코드를 매핑하는 자신의 무언가를 쓰기 필요에 따라 코드를 조정하고 테스트하십시오. 추가 참조

+0

예전 통화 코드를 사용할 수 있다는 것은 내가 생각하기에는 좋은 행운입니다. 좋은 해킹! – extraneon

+0

글쎄 그들은 이전 통화에서 6의 0을 떨어 뜨 렸습니다. 그래서 그 차이는 실제로 백만에서 1까지입니다 ... 당신이 원하는 것을 조심하십시오! – vikingsteve

5

부활 :

당신은 서식 목적

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

아니면 SPI에 호소 및 플러그인 통화 기호 수의 통화를 변경하는 DecimalFormatSymbols가 사용할 수 있습니다

(어쩌면 당신의 자신을 만들어 country variant는 new Locale("tr","TR","try")입니다. 이를 수행하려면 java.util.spi.CurrencyNameProvider에 구현을 제공하고 Java 확장 메커니즘으로 등록해야합니다. 체크 아웃 http://java.sun.com/javase/6/docs/api/java/util/spi/LocaleServiceProvider.html

관련 문제