YStudio Y++

日期时间类(扩展类库)

Y++ / YStudio 开发文档 · 一点滴

面向对象的本地日期时间容器(类似 Qt QDateTime)。与基础库里的扁平命令(取当前日期计算时间 等)并存:需要「一个变量里存时间、反复读写/加减」时用本类;一次性计算仍可用原命令。

支持库路径:扩展类库 → 日期时间类


快速开始

函数 主窗口.创建完毕 () {
    日期时间类 dt
    dt.取当前时间 ()
    输出 (dt.到文本 ())                    // 2026-09-02 12:30:45

    dt.解析 ("2026-09-02 08:00:00")
    dt.加 (7, "日")                        // 加 7 天;也可写 秒/分/时/月/年
    输出 (dt.到文本 ())

    长整数 ts = dt.取时间戳 ()
    输出 (ts)

    日期时间类 dt2
    dt2.从时间戳 (ts)
    输出 (dt.比较 (dt2))                   // 0=相等,负数=dt 更早
}

声明 日期时间类 变量名 时会自动创建对象,一般不必写 创建日期时间()


支持的文本格式(解析)

解析(文本) 可识别:

示例 说明
2026-09-02 12:30:00 常用,带时分秒
2026-09-02 仅日期,时分秒为 0
2026/09/02 12:30:00 斜杠分隔
2026/09/02 斜杠仅日期

解析失败时 是否有效() 为假,取错误() 返回原因。


到文本 · 格式码

到文本([整数 格式=1])

格式码 输出示例
1(默认) 2026-09-02 12:30:00
2 2026-09-02(仅日期)
3 2026/09/02 12:30:00
4 2026/09/02(仅日期)

加 · 时间单位

加(长整数 数量, 文本 单位) — 数量为负表示减。

单位(任选其一) 含义
/ s / second
/ m / minute 分钟
/ h / hour 小时
/ day(省略时默认)
/ month 月(按日历进位)
/ year
dt.解析 ("2026-01-31 10:00:00")
dt.加 (1, "月")          // → 2026-02-28 …
dt.加 (-3, "日")

时间戳

  • 取时间戳([逻辑 毫秒=假]):Unix 时间戳;毫秒=真 时返回 13 位毫秒戳。
  • 从时间戳(长整数 戳, [逻辑 毫秒=假]):反向填充对象。

基于系统本地时区,非 UTC。


与扁平「日期时间」命令的区别

场景 推荐
变量里保存、多次加减/比较/格式化 日期时间类
取当前日期()友好时间()取工作日 等一次性工具 基础库 日期时间 命令
两个对象比较 dt1.比较(dt2)
只比两个字符串 仍可用 比较时间(文本, 文本)

方法一览

方法 返回 说明
取当前时间() 逻辑 设为当前本地时间(写入对象;基础库同名命令返回文本)
解析(文本) 逻辑 从文本填充
从时间戳(戳, [毫秒=假]) 逻辑 从 Unix 戳填充
到文本([格式=1]) 文本 格式化输出
取时间戳([毫秒=假]) 整数 Unix 戳
加(数量, 单位) 逻辑 在当前值上加减
比较(日期时间类 其他) 整数 <0 / 0 / >0
取年 取月 取日 取时 取分 取秒 整数 分量
是否有效() 逻辑 是否已成功赋值
清空() 重置
取错误() 文本 最近错误信息

常见错误

  1. 未解析就取分量 — 先 取当前时间()解析(...),再 取年() 等。
  2. 比较传文本比较 参数必须是另一个 日期时间类 变量,不能传字符串。
  3. 与 UTC 混淆 — 时间戳按本地时区解释,跨时区业务请自行换算。