Java 如何使用Joda Money设置负金额格式?

Java 如何使用Joda Money设置负金额格式?,java,joda-money,Java,Joda Money,我想在货币符号I之前用减号格式化负数。e: 给定输入值:-123.45 我希望输出为:-$123.45 有没有办法用乔达的钱来完成 以下是我尝试过的: Money money = Money.of(CurrencyUnit.USD, -123.45); MoneyFormatter formatter = new MoneyFormatterBuilder() .appendCurrencySymbolLocalized() .

我想在货币符号I之前用减号格式化负数。e:

给定输入值:
-123.45

我希望输出为:
-$123.45

有没有办法用乔达的钱来完成

以下是我尝试过的:

Money money = Money.of(CurrencyUnit.USD, -123.45);
MoneyFormatter formatter = new MoneyFormatterBuilder()
                 .appendCurrencySymbolLocalized()
                 .appendAmountLocalized()
                 .toFormatter(Locale.US);
String formatted = formatter.print(money);

但这给了我:
$-123.45

Joda Money 0.11(在您提出问题后发布)添加到格式化程序中,它允许您为负数、零数和正数指定不同的格式化程序。这将允许您为每种情况指定自己的自定义格式。

您有测试过的代码吗?Joda Money确实有类似于
isNegative()
的方法,所以我假设您可以将其设置为负数。请将其放在主要帖子中,而不是评论中。对不起。我不知道会这么糟糕。你能调用
.appendLiteral(“-”)吗
之前。appendCurrencySymbolLocalized()?如果是这样,我会说有两个格式化程序,一个为负数,一个为正数,并使用If测试来检查它是否为负数。那么,如果最后我不得不自己实现格式化,为什么还要麻烦Joda呢?