「1.0 KiB のデータ転送に 1:32 時間かかりました」のようなメッセージをフォーマットしたい。しかし、バイト数と期間の両方をフォーマットしてローカライズする必要があります。バイト数をフォーマットする方法をいくつか見つけました。時間の長さは問題ないようです。しかし、それからローカリゼーションが始まり、私の自家製コードは過剰になります。ICU ライブラリの助けを借りて、そのようなフォーマットを実装する方法についてのアイデアを探しています。
質問する
493 次
2 に答える
2
JavaMessageFormat
を使用するだけで、さまざまな Java タイプを文字列にフォーマットできます。このフォーマットはあなたが望むことをするはずです
final MessageFormat format = new MessageFormat("Data transfer of {0,number,0.0} KiB took {1}:{2} hours");
使用法は
final String formatted = format.format(new Object[]{amountTransferred, hours, minutes});
またはまたは、およびamountTransferred
は整数型です。double
float
BigDecimal
hours
minutes
個別に行う必要がある場合は、分数をフォーマットする方法に関する投稿が既にあります。HH:mm
于 2013-03-09T13:55:56.877 に答える