时
时间命名空间。 取时间戳、高精度计时与休眠。
函数
| 调用 | 返回 | 说明 |
|---|---|---|
时.现() | 整 | 当前 Unix 时间戳(秒,如 1790358274) |
时.毫秒() | 整 | 高精度单调计时(毫秒)——测量耗时用,不是 Unix 时间戳 |
时.微秒() | 整 | 高精度单调计时(微秒)——同上 |
时.睡(毫秒) | 空 | 休眠指定毫秒数 |
时.部分(时间戳) | 字典 | 拆为 {年, 月, 日, 时, 分, 秒, 星期, 年积日}(本地时区;星期 1=周一 … 7=周日) |
时.格式(时间戳, 格式串) | 结果 | 按 C strftime 格式串产出文本,如 时.格式(t, "%Y-%m-%d %H:%M:%S") |
时.指定(年, 月, 日, 时, 分, 秒) | 整 | 由日历时间合成 Unix 时间戳(本地时区) |
时.间隔(t1, t2) | 小数 | 两时间戳的秒差(t1 − t2) |
xuantie
设 戳 = 时.指定(2024, 3, 15, 10, 30, 0)
设 部 = 时.部分(戳)
示(部["年"] & "-" & 部["月"] & "-" & 部["日"] & " 星期" & 部["星期"])
设 文 = 时.格式(时.现(), "%Y-%m-%d %H:%M:%S")
若 文.成功 { 示(文.值) }用法
xuantie
设 起 = 时.毫秒()
设 i = 0
当 i < 1000 { i = i + 1 }
示("耗时 " & 字(时.毫秒() - 起) & "ms")
时.睡(200) // 暂停 200 毫秒注意
时.睡是真正挂起当前执行体的休眠:在异步 { }块(fiber)里它是切分点——调度器可在这段时间跑别的 fiber;在主线程里则阻塞当前线程。时.睡(1)的实际精度受系统定时器粒度影响(Windows 约 15ms 量级),需要精细计时请用时.毫秒/微秒做差值测量,而不是靠小睡眠累加。- 循环里出现
时.睡会让整个异步块编译为线程池任务(运行期间独占一个 worker),编译器会给出提示。
相关
- 等待、异步 —— 并发与调度
- 08 网络与并发编程指南