假设我有几天:
Period p = Period.ofDays(3);
我想用字符串中的“天”标签格式化句点,以将此字符串作为输出:
// "3 days"
...但是,我想本地化“days”组件,所以我不能使用像下面这样的格式化字符串,否则它只会以英文正确显示:
String.format("%d days", numberOfDays); // Won't localize 'days'
Java/Kotlin/Android 中有哪些 API 可以表示一段时间,例如语言环境中的小时、天、周、年?如果可以让 API 完成,我宁愿不自己本地化这些词。
最佳答案
正如一条评论中所建议的,您可以使用我的库 Time4J并使用以下代码:
Period p = Period.ofDays(3);
Locale loc = Locale.ENGLISH; // or any other supported locale
String formatted = PrettyTime.of(loc).print(p); // 3 days
本教程还包含一个 list of currently supported languages .顺便说一下,java.time.Period
的 Time4J 等价物将是 net.time4j.Duration<CalendarUnit>
如果您对规范化或扩展的 ISO 兼容性等其他功能感兴趣。
注意:如果您使用的是 Android,那么您应该使用姊妹库 Time4A而不是 Time4J,但呈现的代码是相同的。
关于java - 如何在 Java/Android 的格式化字符串中显示本地化的日期单位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60730647/