バッチなどで経過時間をログ出力したいときに、ミリ秒表示などではなく時間形式で表示したい場合の処理を記載しておく。
fun main() { val begin = System.nanoTime() /*コードが始まります*/ //2秒間スリープします Thread.sleep(2000) /*コードは終了します*/ val end = System.nanoTime() val elapsedTime = formatElapsedTime(end-begin) println("Elapsed time: ${elapsedTime}") } /** * 経過時間(ナノ秒)をhh:mm:ssのフォーマットで出力する */ fun formatElapsedTime(elapsedTimeNanos: Long): String { val elapsedTimeSeconds = elapsedTimeNanos / 1_000_000 / 1_000 val hours = elapsedTimeSeconds / 3600 val minutes = (elapsedTimeSeconds % 3600) / 60 // 1時間の剰余の秒/60秒 val seconds = (elapsedTimeSeconds % 60) // 1分の剰余の秒 return String.format("%02d:%02d:%02d", hours, minutes, seconds) }