【发布时间】:2020-10-28 02:42:36
【问题描述】:
我的应用程序以 hh:mm:ss 格式显示剩余时间,例如 01:05:45 代表一小时 5 分 45 秒。
当小时或分钟为零时,我不想显示它们。目前,如果还剩 45 秒,我的计时器将显示“00:00:45”。预期结果只是“45”。
我需要某种 Java/Kotlin/Android 方法来产生以下输出:
- 1 小时 13 分 10 秒 ==> 01:13:10
- 0 小时 13 分 10 秒 ==> 13:10
- 3 小时 0 分 16 秒 ==> 03:00:16
- 0 小时 0 分 5 秒 ==> 5
目前我使用这样的字符串作为格式化程序:
<string name="time_default_formatter" translatable="false">%02d:%02d:%02d</string>
我尝试手动将字符串“00:”替换为“”,但在第三个示例中它失败了。另外,我认为标准格式应该提供类似的东西,但我一直找不到。
编辑:我可以在代码中做到这一点。问题是我正在寻找一个优雅的解决方案。
【问题讨论】:
-
这是硬性要求吗?大多数电子计时器和计时器应用都至少包含分钟数,即使为零。
-
恐怕这是一个硬性要求。客户在几个计时器应用程序中看到了这样的解决方案,他也想要同样的东西。
-
在这种情况下,您可能需要条件逻辑来从不同格式中进行选择或仅连接相关字段。
-
如果我必须这样做,我会这样做。但我希望有一个更优雅的解决方案。
-
所以你需要一个格式化模式或代码?
标签: java android kotlin format string-formatting