Formats instances of MonetaryAmount to a String or an Appendable.
To obtain a MonetaryAmountFormat for a specific locale, including the default
locale, call MonetaryFormats#getAmountFormat(java.util.Locale, String...).
More complex formatting scenarios can be implemented by registering instances of .MonetaryAmountFormatProviderSpi.
The spi implementation creates new instances of javax.money.format.MonetaryAmountFormat based on the
styleId and (arbitrary) attributes passed within the javax.money.format.AmountFormatContext.
In general, do prefer
accessing MonetaryAmountFormat instances from the MonetaryFormats singleton,
instead of instantiating implementations directly, since the MonetaryFormats factory
method may return different subclasses or may implement contextual behaviour (in a EE context).
If you need to customize the format object, do something like this:
MonetaryAmountFormat f = MonetaryFormats.getInstance(loc); f.setStyle(f.getStyle().toBuilder().setPattern("###.##;(###.##)").build());
Negative zero ("-0") should always parse to
0Instances of this class are not required to be thread-safe. It is recommended to of separate format instances for each thread. If multiple threads access a format concurrently, it must be synchronized externally.
// Print out a number using the localized number, currency, // for each locale Locale[] locales = MonetaryFormats.getAvailableLocales(); MonetaryAmount amount = ...; MonetaryAmountFormat form; System.out.println("FORMAT"); for (int i = 0; i < locales.length; ++i) { if (locales[i].getCountry().length() == 0) { continue; // Skip language-only locales } System.out.print(locales[i].getDisplayName()); form = MonetaryFormats.getInstance(locales[i]); System.out.print(": " + form.getStyle().getPattern()); String myAmount = form.format(amount); System.out.print(" -> " + myAmount); try { System.out.println(" -> " + form.parse(form.format(myAmount))); } catch (ParseException e) {} } }
| Modifier and Type | Method and Description |
|---|---|
| public default String | Returns: the string printed using the settings of this formatterthe amount to format, not amount)nullFormats the given |
| public AmountFormatContext | |
| public MonetaryAmount | Returns: the parsed value, nevernullthe text to parse, not null text)Fully parses the text into an instance of |
| public void | print(Appendable
the appendable to add to, not null appendable, MonetaryAmount the amount to print, not null amount)Formats the given |
| format | back to summary |
|---|---|
| public default String format(MonetaryAmount amount) Formats the given
| |
| getContext | back to summary |
|---|---|
| public AmountFormatContext getContext() The
| |
| parse | back to summary |
|---|---|
| public MonetaryAmount parse(CharSequence text) throws MonetaryParseException Fully parses the text into an instance of The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception is thrown. If any other problem occurs during parsing, an exception is thrown.
Additionally the effective implementation type returned can be determined by the
| |
| back to summary | |
|---|---|
| public void print(Appendable appendable, MonetaryAmount amount) throws IOException Formats the given
Example implementations of
| |