Joda Time のバグを明らかにする私のコードは次のとおりです。
import org.joda.time.Period;
import org.joda.time.format.PeriodFormat;
import org.joda.time.format.PeriodFormatter;
import java.util.Locale;
public class ScratchSpace {
public static void main(String[] args) {
Locale.setDefault(Locale.GERMAN);
final PeriodFormatter periodFormatter =
PeriodFormat.wordBased(Locale.ENGLISH);
final Period period = new Period(6, 5, 4, 3);
final String s = period.toString(periodFormatter);
// i'm expecting english to be outputted
System.out.println("s = " + s); // outputs german: 6 Stunden, 5 Minuten, 4 Sekunden und 3 Millisekunden
}
}
JavaDocs によると、英語で書式設定された期間を取得する必要があります。ただし、代わりに現在のデフォルトのロケールを使用しています。上記の例ではドイツ語です。
私は Mac OS X 10.7 で Joda Time 2.0 を使用しており、コンピューターの優先言語を「オーストラリア英語」に設定しています。
あなたが提案できる簡単な回避策はありますか?