处理持续时间
duration 类型表示具有纳秒精度的时长。
类型名称: duration
持续时间语法
持续时间字面量包含整数和单位说明符。Flux 支持以下单位说明符
ns
: 纳秒us
: 微秒ms
: 毫秒s
: 秒m
: 分钟h
: 小时d
: 天w
: 周mo
: 日历月y
: 日历年
1ns // 1 nanosecond
1us // 1 microsecond
1ms // 1 millisecond
1s // 1 second
1m // 1 minute
1h // 1 hour
1d // 1 day
1w // 1 week
1mo // 1 calendar month
1y // 1 calendar year
3d12h4m25s // 3 days, 12 hours, 4 minutes, and 25 seconds
不要在持续时间字面量中包含前导零
持续时间字面量的整数部分不应包含前导零。前导零会被解析为单独的整数文字。例如
01m // parsed as 0 (integer literal) and 1m (duration literal)
02h05m // parsed as 0 (integer literal), 2h (duration literal), 0 (integer literal), and 5m (duration literal)
将数据类型转换为持续时间
使用 duration()
函数 将以下 基本类型 转换为持续时间
- string: 解析为持续时间字符串并转换为持续时间。
- int: 解析为纳秒并转换为持续时间。
- uint: 解析为纳秒并转换为持续时间。
duration(v: "1h30m")
// Returns 1h30m
duration(v: 1000000)
// Returns 1ms
duration(v: uint(v: 3000000000))
// Returns 3s
Flux 不支持持续时间列。
对持续时间执行操作
对持续时间执行算术运算
要执行诸如加、减、乘或除持续时间值之类的操作
- 使用
int()
或uint()
将持续时间值转换为数值。 - 使用 算术运算符 对数值进行运算。
- 使用
duration()
将计算出的数值转换为持续时间。
duration(v: int(v: 6h4m) + int(v: 22h32s))
// Returns 1d4h4m32s
duration(v: int(v: 22h32s) - int(v: 6h4m))
// Returns 15h56m32s
duration(v: int(v: 32m10s) * 10)
// Returns 5h21m40s
duration(v: int(v: 24h) / 2)
// Returns 12h
将持续时间添加到时间值
- 导入
date
包。 - 使用
date.add()
将持续时间添加到时间值。
import "date"
date.add(d: 1w, to: 2021-01-01T00:00:00Z)
// Returns 2021-01-08T00:00:00.000000000Z
从时间值中减去持续时间
- 导入
date
包。 - 使用
date.sub()
从时间值中减去持续时间。
import "date"
date.sub(d: 1w, from: 2021-01-01T00:00:00Z)
// Returns 2020-12-25T00:00:00.000000000Z
此页内容对您有帮助吗?
感谢您的反馈!