java - DateFormat 中的零填充小时

标签 java time date-format hour

我试图将时间差显示为一个字符串,该字符串遵循 00:00:00(小时:分钟:秒)的形式,以零填充。我有以下代码:

long timeDiff = System.currentTimeMillis() - mStartRecordingTime;
time = DateFormat.format("hh:mm:ss", timeDiff).toString(); 

我在测试时,timeDiff 不超过几秒,但小时不显示为 00。顺便说一句,我在 JST 时区。

最佳答案

你从哪里得到mStartRecordingTime?在我看来,它不像是在同一语言环境中使用 System.currentTimeMillis() 设置的;如果是的话,那么时间差异就会反射(reflect)实际差异,这样就会起作用。录制时间似乎以 UTC 时间设定,与 JST 相差 9 小时。

另一张海报是正确的,用这个值生成的日期将接近纪元,但如果你只是想获取小时、分钟和秒,那么你应该没问题。请记住,您处理的是耗时,而不是时钟/日历时间,因此我不希望日期格式(而不是时间格式)适合您。

关于java - DateFormat 中的零填充小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8774873/

相关文章:

java - 试图在 Jframe(形成汽车)上为线条/圆的 ArrayList 设置动画,但我似乎无法删除绘制的旧线条

objective-c - 将毫秒转换为分钟

java - 使用 System.currentTimeMillis() 时出现问题;在 java

java - 把一个JScrollPane滚动条的bar放在XXX处,不用 "flashing"

java - 将时间和日期转换为相对时间(CSV 处理)

java - 解释一下为什么这个二叉树遍历算法的时间复杂度是O(NlogN)?

java - 将 java.text.DateFormat 解析为 java.util.Calendar

java - 在javascript中传递当前系统时间

sql - 如何在 Spark SQL 中格式化日期?

java - 使用 Micronaut Serialization 进行泛型反序列化,而不使用 @SuppressWarnings ("unchecked")