6.Kotlin的Duration类

以下是 Kotlin 中 Duration 类的所有方法(基于 Kotlin 1.9+ 标准库),包含方法签名、返回值、说明及示例:

一、属性(Properties)

方法签名 返回值 说明 示例
val inDays: Long Long 以天为单位的时长(向下取整) Duration.ofHours(25).inDays → 1
val inHours: Long Long 以小时为单位的时长(向下取整) Duration.ofMinutes(130).inHours → 2
val inMinutes: Long Long 以分钟为单位的时长(向下取整) Duration.ofSeconds(370).inMinutes → 6
val inSeconds: Long Long 以秒为单位的时长(向下取整) Duration.ofMillis(2500).inSeconds → 2
val inMillis: Long Long 以毫秒为单位的总时长 Duration.ofSeconds(1).inMillis → 1000
val isZero: Boolean Boolean 判断时长是否为 0 Duration.ZERO.isZero → true
val isPositive: Boolean Boolean 判断时长是否为正数(>0) Duration.ofNanos(1).isPositive → true
val isNegative: Boolean Boolean 判断时长是否为负数(<0) Duration.ofNanos(-1).isNegative → true

二、运算方法(Operations)

方法签名 返回值 说明 示例
operator fun plus(other: Duration): Duration Duration 加另一个时长 Duration.ofHours(2) + Duration.ofMinutes(30) → 2h30m
operator fun minus(other: Duration): Duration Duration 减另一个时长 Duration.ofHours(3) - Duration.ofMinutes(45) → 2h15m
fun multipliedBy(scalar: Long): Duration Duration 乘以倍数 Duration.ofMinutes(10).multipliedBy(2) → 20m
fun dividedBy(divisor: Long): Duration Duration 除以除数(向下取整) Duration.ofSeconds(60).dividedBy(3) → 20s
fun dividedBy(other: Duration): Long Long 除以另一个时长(得到倍数,向下取整) Duration.ofHours(4).dividedBy(Duration.ofHours(2)) → 2
fun negated(): Duration Duration 返回相反符号的时长 Duration.ofHours(1).negated() → -1h
fun abs(): Duration Duration 返回时长的绝对值 Duration.ofHours(-2).abs() → 2h

三、比较方法(Comparisons)

方法签名 返回值 说明 示例
operator fun compareTo(other: Duration): Int Int 比较两个时长:负(<)、0(=)、正(>) Duration.ofMinutes(30).compareTo(Duration.ofHours(1)) → -1
operator fun rangeTo(other: Duration): ClosedRange<Duration> ClosedRange<Duration> 创建时长范围 val range = Duration.ofHours(1)..Duration.ofHours(2)

四、静态创建方法(Static Factories)

方法签名 返回值 说明 示例
fun ofNanos(nanos: Long): Duration Duration 从纳秒创建时长 Duration.ofNanos(1_000_000) → 1ms
fun ofMillis(millis: Long): Duration Duration 从毫秒创建时长 Duration.ofMillis(1000) → 1s
fun ofSeconds(seconds: Long): Duration Duration 从秒创建时长 Duration.ofSeconds(60) → 1m
fun ofSeconds(seconds: Long, nanoAdjustment: Long): Duration Duration 从秒+纳秒偏移创建 Duration.ofSeconds(1, 500_000_000) → 1.5s
fun ofMinutes(minutes: Long): Duration Duration 从分钟创建时长 Duration.ofMinutes(60) → 1h
fun ofHours(hours: Long): Duration Duration 从小时创建时长 Duration.ofHours(24) → 1d
fun ofDays(days: Long): Duration Duration 从天数创建时长 Duration.ofDays(1) → 24h
fun between(startInclusive: Instant, endExclusive: Instant): Duration Duration 计算两个Instant的差 Duration.between(Instant.parse("2023-01-01T00:00:00Z"), Instant.parse("2023-01-01T01:00:00Z")) → 1h
fun between(startInclusive: LocalTime, endExclusive: LocalTime): Duration Duration 计算两个LocalTime的差 Duration.between(LocalTime.of(9,0), LocalTime.of(10,0)) → 1h
fun parse(text: CharSequence): Duration Duration 从字符串解析时长(如PT1H30M Duration.parse("PT1H30M") → 1h30m

五、其他方法(Other)

方法签名 返回值 说明 示例
override fun toString(): String String 返回标准化字符串(ISO-8601格式) Duration.ofMinutes(90).toString() → "PT1H30M"

说明:

  1. 所有方法均来自 kotlin.time.Duration(Kotlin 标准库)及 Java 互操作的 java.time.Duration 扩展。
  2. 示例中 表示返回结果的简化描述(非实际返回值的字符串形式)。
  3. 负数时长的转换(如 inDays)会向下取整(例如 -1.5hinHours-2)。

通过这些方法,Duration 可以完整支持时长的创建、转换、运算和比较,适用于所有需要处理时间间隔的场景。

相关推荐
微风中的麦穗21 小时前
【MATLAB】MATLAB R2025a 详细下载安装图文指南:下一代科学计算与工程仿真平台
开发语言·matlab·开发工具·工程仿真·matlab r2025a·matlab r2025·科学计算与工程仿真
2601_9491465321 小时前
C语言语音通知API示例代码:基于标准C的语音接口开发与底层调用实践
c语言·开发语言
开源技术1 天前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
学嵌入式的小杨同学1 天前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
mftang1 天前
Python 字符串拼接成字节详解
开发语言·python
jasligea1 天前
构建个人智能助手
开发语言·python·自然语言处理
kokunka1 天前
【源码+注释】纯C++小游戏开发之射击小球游戏
开发语言·c++·游戏
云栖梦泽1 天前
易语言开发从入门到精通:补充篇·网络编程进阶+实用爬虫开发·API集成·代理IP配置·异步请求·防封禁优化
开发语言
STCNXPARM1 天前
Linux camera之V4L2子系统详解
android·linux·camera·v4l2架构
java1234_小锋1 天前
Java高频面试题:SpringBoot为什么要禁止循环依赖?
java·开发语言·面试