我试图将时间差显示为一个字符串,该字符串遵循 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/