如何将毫秒转换为“mm:ss:ms”格式?

保利码

我正在开发一个程序,我在其中搜索两个文本文件并比较它们(这是 JetBrains Academy 的一项任务)。最后,我的任务是输出执行此操作所需的时间,格式为“mm:ss:ms”。图片作为参考:

1

这是我为实现这一目标而编写的代码。我想这很不正确,所以我为此道歉,我学习 Kotlin 和编程不久。

val millis = System.currentTimeMillis()
val time = String.format("%1\$tM min. %1\$tS sec. %1\$tL ms.", millis);

println("Start searching...")
println("Found $number. Time taken: $time ")

我得到的输出是这样的:

> Start searching...
Found 864 / 864. Time taken: 19 min. 53 sec. 611 ms. 

分钟和秒是错误的,因为它花了不到一秒钟。我对 ms 表示怀疑,因为它们适合花费多少时间。有人可以帮助我解决我做错了什么吗?谢谢!

利诺

来自System.currentTimeMillis()

返回当前时间与 UTC 1970 年 1 月 1 日午夜之间的差值(以毫秒为单位)。

因此,您在输出中看到的是Hh:mm:ss1970-01-01T00:00:00 到现在为止所用时间一部分。

您真正想要的是花费的时间,即时间测量的开始和结束之间的差异。

val start = System.currentTimeMillis()

// do your processing

val end = System.currentTimeMillis()
val time = String.format("%1$tM min. %1$tS sec. %1$tL ms.", end - start)

这应该会给你一个适当的输出。


正如评论中所述,某些时区会发生奇怪的事情。并且String.format()似乎无法配置(至少我没有找到任何东西)。

如果你真的想成为安全起见,你可以使用的回答所建议@SergeyAfinogenov,但也有一些小的调整:

val minutes = duration.getSeconds() / 60
val seconds = duration.getSeconds() - minutes * 60
val millis = duration.getNano() / 1_000_000
val time = String.format("%d min. %d sec. %d ms.%n", minutes, seconds, millis)

这有效地手动计算了不同的部分(分钟、秒、毫秒)Duration,然后相应地格式化它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将毫秒转换为“ hh:mm:ss”格式?

Microsoft Reporting Services-如何将毫秒转换为dd:mm:ss格式

如何将毫秒(整数)转换为mm:ss格式的字符串?

如何将毫秒转换为“ mmm:ss”格式?

mongodb(3.4版本)如何将毫秒转换成HH:MM:SS格式

如何将 mm:ss.ms 转换为 ss.ms?

如何在Julia中将毫秒数组转换为MM:SS:ss格式或DateTime格式?

将毫秒转换为 yyyy-MM-dd HH:mm:ss 格式 Javascript

在postgres中将hh:mm:ss.ms转换为毫秒

在Angular中将毫秒转换为HH:mm:ss格式

如何将HH:MM:SS:Ms的Spark Dataframe列转换为以秒为单位的值?

如何将 MM::SS 字符串转换为 HMS 格式

如何将System.currentTimeMillis转换为时间格式?(HH:MM:SS)

如何将ISO日期和时间格式转换为“ DD Mon YYYY hh:mm:ss”?

如何将varchar转换为hh:mm:ss的日期时间格式?

如何将秒转换为hh:mm:ss.millisecond格式C ++?

如何将hh:mm:ss格式的时间戳列表转换为午夜以来的分钟

如何在R中将毫秒转换为hh:mm:ss.sss时间戳格式

如何在 Go 中将毫秒(uint64)转换为 HH:MM:SS,MMM 格式

如何在 Kotlin 中将毫秒转换为秒表格式?(HH:MM:SS)

如何将YYYY-MM-DDTHH:mm:ss.SSSZ格式的时间转换为默认时区?

如何将日期时间转换为Perl中的yyyy-mm-dd hh:mm:ss格式?

如何将时间从hh:mm:ss.mmm转换为mysql的秒和毫秒

QT QML如何将毫秒转换为时间hh:mm:ss:zzz?

如何将jodatime持续时间转换为格式为hh:mm:ss的字符串?

如果小时数超过24,如何将秒转换为HH:MM:SS格式而不会失败

如何将 MM::SS 字符串转换为时间格式然后对其进行操作

将 hh:mm:ss 格式的时间转换为秒或分钟

将时间转换为分钟HH:MM:SS格式