気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Kotlin 処理実行時間をhh:mm:ssのフォーマットで出力する

バッチなどで経過時間をログ出力したいときに、ミリ秒表示などではなく時間形式で表示したい場合の処理を記載しておく。

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)
}

参考URL