Duration.toString所在位置是kotlin.time.Duration.toString,其相關用法介紹如下。

用法一

fun toString(): String

返回此持續時間值的字符串表示形式,表示為數字分量的組合,每個分量都有自己的單位。

每個組件都是一個數字,後跟單位縮寫名稱:dhms5h1d 12h1h 0m 30.340s。最後一個組成部分,通常是秒,可以是帶有小數部分的數字。

如果持續時間小於一秒,則表示為具有sub-second 單位之一的單個數字:ms(毫秒)、us(微秒)或ns(納秒):140.884ms500us24ns

負持續時間以 - 符號為前綴,如果它由多個組件組成,則用括號括起來:-12m-(1h 30m)

特別案例:

  • 無限持續時間被格式化為 "Infinity""-Infinity" 沒有單位。

當您想在序列化、交換等情況下將持續時間轉換為字符串時,建議使用使用更嚴格的 ISO-8601 格式的 toIsoString 而不是此 toString

例子:

import kotlin.test.*

import kotlin.time.*
import kotlin.time.Duration.Companion.days
import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.minutes
import kotlin.time.Duration.Companion.nanoseconds
import kotlin.time.Duration.Companion.seconds

fun main(args: Array<String>) {
//sampleStart
println(45.days) // 45d
println(1.5.days) // 1d 12h
println(1230.minutes) // 20h 30m
println(920.minutes) // 15h 20m
println(1.546.seconds) // 1.546s
println(25.12.milliseconds) // 25.12ms
//sampleEnd
}

輸出:

45d
1d 12h
20h 30m
15h 20m
1.546s
25.12ms

用法二

fun toString(unit: DurationUnit, decimals: Int = 0): String

返回此持續時間值的字符串表示形式,以給定的 unit 表示,並使用指定的 decimals 小數點後位數進行格式化。

特別案例:

  • 無限持續時間被格式化為 "Infinity""-Infinity" 沒有單位。

例子:

import kotlin.test.*

import kotlin.time.*
import kotlin.time.Duration.Companion.days
import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.minutes
import kotlin.time.Duration.Companion.nanoseconds
import kotlin.time.Duration.Companion.seconds

fun main(args: Array<String>) {
//sampleStart
println(1230.minutes.toString(DurationUnit.DAYS, 2)) // 0.85d
println(1230.minutes.toString(DurationUnit.HOURS, 2)) // 20.50h
println(1230.minutes.toString(DurationUnit.MINUTES)) // 1230m
println(1230.minutes.toString(DurationUnit.SECONDS)) // 73800s
//sampleEnd
}

輸出:

0.85d
20.50h
1230m
73800s

參數

decimals- 要顯示的小數點後的位數。該值必須為非負數。即使請求更大的數字,也不會顯示超過 12 位小數。

異常

IllegalArgumentException- 如果小數點小於零。

返回指定的 unit 中的持續時間值,後跟該單位的縮寫名稱:dhmsmsusns