我想格式化一条消息,例如“1.0 KiB 的数据传输花费了 1:32 小时”。但我需要格式化和本地化的字节数和持续时间。我发现了几个如何格式化字节计数的想法,持续时间似乎不错。但随着本地化的到来,我自己编写的代码变得过多。 我正在寻找如何在 ICU 库的帮助下实现此类格式化的任何想法。
最佳答案
您可以简单地使用 Java MessageFormat
,它允许您将不同的 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
和分钟
是整数类型。
已经有一个post如果您需要单独执行此操作,请了解如何将分钟数格式化为 HH:mm
。
关于java - 如何设置 i18n 格式字节数和持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15311431/