我想使用像 H:MM:SS 这样的模式来格式化持续时间(以秒为单位)。 Java 中的当前实用程序旨在格式化时间而不是持续时间。
原文由 kofte 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想使用像 H:MM:SS 这样的模式来格式化持续时间(以秒为单位)。 Java 中的当前实用程序旨在格式化时间而不是持续时间。
原文由 kofte 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答1.1k 阅读✓ 已解决
4 回答1.1k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答698 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.6k 阅读
2 回答1.3k 阅读
如果您使用的是 8 之前的 Java 版本…您可以使用 Joda Time 和
PeriodFormatter
。如果你真的有一个持续时间(即经过的时间量,没有参考日历系统)那么你应该使用Duration
大多数情况下 - 然后你可以调用toPeriod
(指定任何PeriodType
你想反映 25 小时是否变成 1 天和 1 小时等)以获得Period
你可以格式化。如果您使用的是 Java 8 或更高版本:我通常建议使用
java.time.Duration
来表示持续时间。然后,如果需要,您可以调用getSeconds()
或类似的方法来根据 bobince 的回答获取标准字符串格式的整数 - 尽管您应该注意持续时间为负的情况,因为您可能需要输出字符串中的 单个 负号。所以像:以这种方式格式化是 相当 简单的,即使是令人讨厌的手动操作。对于 解析 来说,它通常变得更加困难……当然,如果你愿意,你仍然可以使用 Java 8 的 Joda Time。