Duration.parseOrNull所在位置是kotlin.time.Duration.parseOrNull,其相关用法介绍如下。

用法:

fun parseOrNull(value: String): Duration?

解析表示持续时间的字符串并返回解析的 Duration 值,如果字符串不表示任何受支持格式的持续时间,则返回 null

接受以下格式:

  • ISO-8601 持续时间格式,例如P1DT2H3M4.058S ,请参见 toIsoStringparseIsoString
  • 默认 Duration.toStringtoString 返回的字符串格式,以特定单位表示,例如10s1h 30m-(1h 30m)

例子:

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
val isoFormatString = "PT1H30M"
val defaultFormatString = "1h 30m"
val singleUnitFormatString = "1.5h"
val invalidFormatString = "1 hour 30 minutes"

println(Duration.parse(isoFormatString)) // 1h 30m
println(Duration.parse(defaultFormatString)) // 1h 30m
println(Duration.parse(singleUnitFormatString)) // 1h 30m
// Duration.parse(invalidFormatString) //  will fail
println(Duration.parseOrNull(invalidFormatString)) // null
//sampleEnd
}

输出:

1h 30m
1h 30m
1h 30m
null