【发布时间】:2017-09-08 09:26:35
【问题描述】:
我有一个长变量,它表示应用程序的停机时间(以秒为单位)。我想将停机时间显示为HH:mm:ss
Long downTime = 755;
Date newD = new Date(downTime * 1000);
将 long 变量传递给 Date 时,我将其乘以 1000 以获得毫秒值。 newD 变量的计算结果为 Thu Jan 01 01:12:35 GMT 1970
newD 的值相差 1 小时,755 秒 = 00:12:35
据我了解,秒 * 1000 = 毫秒将评估为正确答案。作为I seen here
如果我使用 Duration,我们会得到正确的答案。
Duration d = Duration.ofSeconds(downTime);
PT12M35S
但是格式不是我想要的。
【问题讨论】:
-
看看这里如何格式化持续时间:stackoverflow.com/questions/266825/….
-
如果您使用 UTC,您当前的代码将可以工作,您的本地时区必须比 UTC 早一小时。
-
另外,如果您可以访问 Duration 类,这意味着您正在使用 Java 8。所以不要再使用旧的 Date 类了。使用 java.time 包中的类。
-
只是说,但如果你使用
java.time.Duration,至少使用完整的java.time包,而不是java.util.Date。 -
@procrastinator 问题根本不要求当前时间。问题是关于在一段时间内破解一天中的时间格式。此外,避免遗留类。使用现代 java.time 类要容易得多。
LocalTime.MIN.plusSeconds( 755L ).toString()
标签: java date datetime time long-integer