YStudio Y++

日期时间(基础支持库)

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

扁平命令式支持库(不是类)。路径:支持库 → 基础支持库 → 日期时间。

硬约束

  1. 扁平命令;与「日期时间对象」支持库(datetime-obj)不同——本页无对象方法链。
  2. 格式化串以命令说明为准(常见 yyyy-MM-dd HH:mm:ss 风格)。
  3. 时间差/加减的「单位」用整数:1=秒 2=分 3=时 4=日(默认) 5=月 6=年;勿再传文本。
  4. 时间戳(秒/毫秒)务必看签名,勿混用。
  5. 本地时区与 UTC 转换命令若存在,注意夏令时边界。

快速开始

输出(取现行时间())
// 格式化、加减、时间戳等见签名表

日期时间

本分类共 44 条。

友好时间

  • 签名:文本 友好时间(文本 日期时间, [逻辑 详细模式=假])
  • 说明:把时间转成「刚刚 / X分钟前 / 昨天」等相对描述;详细模式可更细。
  • 参数一│日期时间: 目标时间
  • 参数二│[逻辑 详细模式=假]: 可选,真=输出更详细的相对描述

取分钟

  • 签名:整数 取分钟([文本 时间])
  • 说明:取分钟(0~59)。省略参数取当前分钟。
  • 参数一│[文本 时间]: 可选;省略=当前分钟

取周末日

  • 签名:文本 取周末日([文本 日期], [整数 格式=0], [逻辑 周六为末=假])
  • 说明:取所在周的最后一天。默认周日为末;也可指定周六为末。
  • 参数一│[文本 日期]: 可选;省略=今天
  • 参数二│[整数 格式=0]: 可选整数格式码;省略或 0 用默认
  • 参数三│[逻辑 周六为末=假]: 可选,真=周六为一周最后一天

取周首日

  • 签名:文本 取周首日([文本 日期], [整数 格式=0], [逻辑 周日为首=假])
  • 说明:取所在周的第一天。默认周一开始;周日为首时可切换。
  • 参数一│[文本 日期]: 可选;省略=今天
  • 参数二│[整数 格式=0]: 可选整数格式码;省略或 0 用默认
  • 参数三│[逻辑 周日为首=假]: 可选,真=周日为一周第一天,假/省略=周一为首

取季度

  • 签名:整数 取季度([文本 日期])
  • 说明:返回季度编号 1~4;省略日期则用今天。
  • 参数一│[文本 日期]: 可选;省略=今天

取季度末日

  • 签名:文本 取季度末日([文本 日期], [整数 格式=0])
  • 说明:取所在季度最后一天;省略日期则用今天。
  • 参数一│[文本 日期]: 可选;省略=今天
  • 参数二│[整数 格式=0]: 可选整数格式码;省略或 0 用默认

取季度首日

  • 签名:文本 取季度首日([文本 日期], [整数 格式=0])
  • 说明:取所在季度第一天;省略日期则用今天。
  • 参数一│[文本 日期]: 可选;省略=今天
  • 参数二│[整数 格式=0]: 可选整数格式码;省略或 0 用默认

取小时

  • 签名:整数 取小时([文本 时间])
  • 说明:取小时(0~23)。省略参数取当前小时;否则从时间/日期时间文本解析。
  • 参数一│[文本 时间]: 可选。HH:mm:ss 或 YYYY-MM-DD HH:mm:ss;省略=当前小时

取工作日

  • 签名:文本 取工作日(整数 工作日数, [文本 起始日期], [整数 格式=0])
  • 说明:从起始日起向后(或按实现)偏移若干个工作日,返回日期文本。
  • 参数一│整数 工作日数: 要偏移的工作日数量
  • 参数二│[文本 起始日期]: 可选,默认今天
  • 参数三│[整数 格式=0]: 可选整数格式码;省略或 0 用默认

取工作日数

  • 签名:整数 取工作日数(文本 开始日期, 文本 结束日期, [逻辑 包含结束=真])
  • 说明:统计起止日期之间的工作日数量。
  • 参数一│文本 开始日期: 起点
  • 参数二│文本 结束日期: 终点
  • 参数三│[逻辑 包含结束=真]: 可选,是否计入结束日

取年份

  • 签名:整数 取年份([文本 日期时间])
  • 说明:取年份。省略参数时取当前年;传入日期/日期时间文本时从中解析年份。
  • 参数一│[文本 日期时间]: 可选。支持 YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss;省略=当前年

取年末日

  • 签名:文本 取年末日([整数/文本 年份或日期], [整数 格式=0])
  • 说明:取某年最后一天(12 月 31 日)。
  • 参数一│[整数/文本 年份或日期]: 可选;省略=当前年
  • 参数二│[整数 格式=0]: 可选整数格式码;省略或 0 用默认

取年第几周

  • 签名:整数 取年第几周([文本 日期])
  • 说明:取该日所在的周序号。省略日期用今天。
  • 参数一│[文本 日期]: 可选;省略=今天

取年第几天

  • 签名:整数 取年第几天([文本 日期])
  • 说明:取该日是一年的第几天(1~366)。省略日期用今天。
  • 参数一│[文本 日期]: 可选 YYYY-MM-DD;省略=今天

取年首日

  • 签名:文本 取年首日([整数/文本 年份或日期], [整数 格式=0])
  • 说明:取某年第一天(1 月 1 日)。
  • 参数一│[整数/文本 年份或日期]: 可选年份整数或日期文本;省略=当前年
  • 参数二│[整数 格式=0]: 可选整数格式码;省略或 0 用默认

取年龄

  • 签名:整数 取年龄(文本 出生日期, [逻辑 精确计算=假])
  • 说明:按出生日期计算年龄(周岁)。
  • 参数一│文本 出生日期: YYYY-MM-DD
  • 参数二│[逻辑 精确计算=假]: 可选;是否按到日精确(以实现为准)

取当前日期

  • 签名:文本 取当前日期([整数 格式=2])
  • 说明:获取本机当前日期文本(不含时间,或按格式码输出)。省略格式时为 yyyy-MM-dd。
  • 参数一│[整数 格式=2]: 可选整数格式码;省略或 0 用默认。本命令默认 2

取当前时间

  • 签名:文本 取当前时间([整数 格式=1])
  • 说明:获取本机当前日期时间文本。可按整数格式码输出;省略时为 yyyy-MM-dd HH:mm:ss。
  • 参数一│[整数 格式=1]: 可选整数格式码;省略或 0 用默认。本命令默认 1

取日

  • 签名:整数 取日([文本 日期时间])
  • 说明:取「日」(1~31)。省略参数取当天;否则从日期文本解析。
  • 参数一│[文本 日期时间]: 可选;省略=当前日

取时间差

  • 签名:整数 取时间差(文本 开始时间, 文本 结束时间, [整数 单位=4])
  • 说明:计算两时间差(同「取时间间隔」)。单位用整数:1=秒 2=分 3=时 4=日(默认) 5=月 6=年。
  • 参数一│文本 开始时间: YYYY-MM-DD 或带时分秒
  • 参数二│文本 结束时间: 同上
  • 参数三│[整数 单位=4]: 可选。1=秒 2=分 3=时 4=日(默认) 5=月 6=年

取时间戳

  • 签名:整数 取时间戳([文本 日期时间], [逻辑 毫秒级=假])
  • 说明:取 Unix 时间戳。省略日期时取当前 UTC 换算后的本地对应戳;毫秒级=真时返回毫秒。
  • 参数一│[文本 日期时间]: 可选 YYYY-MM-DD[ HH:mm:ss];省略=现在
  • 参数二│[逻辑 毫秒级=假]: 可选,真=毫秒时间戳,假/省略=秒

取时间间隔

  • 签名:整数 取时间间隔(文本 开始时间, 文本 结束时间, [整数 单位=4])
  • 说明:计算两时间差。单位用整数:1=秒 2=分 3=时 4=日(默认) 5=月 6=年。别名:取时间差。
  • 参数一│文本 开始时间: YYYY-MM-DD 或带时分秒
  • 参数二│文本 结束时间: 同上
  • 参数三│[整数 单位=4]: 可选。1=秒 2=分 3=时 4=日(默认) 5=月 6=年

取星期

  • 签名:整数 取星期([文本 日期])
  • 说明:取星期几,返回整数:周一=1 … 周日=7(与 Windows 周日=0 不同,已换算)。
  • 参数一│[文本 日期]: 可选 YYYY-MM-DD;省略=今天

取月份

  • 签名:整数 取月份([文本 日期时间])
  • 说明:取月份(1~12)。省略参数取当前月;否则从日期文本解析。
  • 参数一│[文本 日期时间]: 可选;省略=当前月

取月天数

  • 签名:整数 取月天数([整数 年份], [整数 月份])
  • 说明:取某年某月的天数;省略参数时用当前年/月。
  • 参数一│[整数 年份]: 可选;省略=当前年
  • 参数二│[整数 月份]: 可选 1~12;省略=当前月

取月末日

  • 签名:文本 取月末日([文本 日期], [整数 格式=0])
  • 说明:取指定日期所在月的最后一天;省略日期则用今天。
  • 参数一│[文本 日期]: 可选;省略=今天
  • 参数二│[整数 格式=0]: 可选整数格式码;省略或 0 用默认

取月首日

  • 签名:文本 取月首日([文本 日期], [整数 格式=0])
  • 说明:取指定日期所在月的第一天;省略日期则用今天。
  • 参数一│[文本 日期]: 可选;省略=今天
  • 参数二│[整数 格式=0]: 可选整数格式码;省略或 0 用默认

取现行时间

  • 签名:文本 取现行时间([整数 格式=1])
  • 说明:获取本机当前日期时间文本(同「取当前时间」)。可按整数格式码输出;省略时为 yyyy-MM-dd HH:mm:ss。
  • 参数一│[整数 格式=1]: 可选整数格式码;省略或 0 用默认。本命令默认 1

取秒

  • 签名:整数 取秒([文本 时间])
  • 说明:取秒(0~59)。省略参数取当前秒。
  • 参数一│[文本 时间]: 可选;省略=当前秒

延时

  • 签名:无 延时(整数 毫秒)
  • 说明:阻塞当前线程等待指定毫秒。会卡住调用线程;界面线程请避免大延时,改用「定时器类」。
  • 参数一│整数 毫秒: 等待毫秒数;0 尽量短让出

时间戳转时间

  • 签名:文本 时间戳转时间(整数 时间戳, [整数 格式=1], [逻辑 毫秒级=假])
  • 说明:Unix 时间戳转本地日期时间文本,可用整数格式码。
  • 参数一│整数 时间戳: 秒戳;若毫秒级=真则按毫秒解释
  • 参数二│[整数 格式=1]: 可选整数格式码;省略或 0 用默认。本命令默认 1
  • 参数三│[逻辑 毫秒级=假]: 可选,默认假

时间格式化

  • 签名:文本 时间格式化(文本 日期时间, [整数 格式=1])
  • 说明:按整数格式码格式化日期时间文本。
  • 参数一│文本 日期时间: 待格式化文本
  • 参数二│[整数 格式=1]: 可选整数格式码;省略或 0 用默认。本命令默认 1

时间比较

  • 签名:整数 时间比较(文本 时间1, 文本 时间2)
  • 说明:比较两时间。返回:小于 -1,等于 0,大于 1(实现以具体比较结果为准)。
  • 参数一│文本 时间1: 左边
  • 参数二│文本 时间2: 右边

时间计算

  • 签名:文本 时间计算(文本 日期时间, 整数 数量, [整数 单位=4])
  • 说明:对日期时间加减。单位用整数:1=秒 2=分 3=时 4=日(默认) 5=月 6=年。正数往后,负数往前。
  • 参数一│文本 日期时间: 基准时间
  • 参数二│整数 数量: 加减量
  • 参数三│[整数 单位=4]: 可选。1=秒 2=分 3=时 4=日(默认) 5=月 6=年

时间转时间戳

  • 签名:整数 时间转时间戳(文本 日期时间)
  • 说明:日期时间文本转 Unix 秒级时间戳(本地时区 mktime)。
  • 参数一│文本 日期时间: YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss

是否今天

  • 签名:逻辑 是否今天(文本 日期)
  • 说明:判断日期是否为今天(按年月日)。
  • 参数一│文本 日期: 日期或日期时间文本

是否周末

  • 签名:逻辑 是否周末([文本 日期])
  • 说明:判断是否为周六或周日;省略日期则用今天。
  • 参数一│[文本 日期]: 可选;省略=今天

是否工作日

  • 签名:逻辑 是否工作日([文本 日期])
  • 说明:是否为周一至周五(不含法定节假日判断)。
  • 参数一│[文本 日期]: 可选;省略=今天

是否明天

  • 签名:逻辑 是否明天(文本 日期)
  • 说明:判断给定日期是否为明天。
  • 参数一│文本 日期: 日期文本

是否昨天

  • 签名:逻辑 是否昨天(文本 日期)
  • 说明:判断给定日期是否为昨天。
  • 参数一│文本 日期: 日期文本

是否有效日期

  • 签名:逻辑 是否有效日期(文本 日期时间)
  • 说明:判断日期时间文本能否被解析为有效日历日期。
  • 参数一│文本 日期时间: 待校验文本

是否闰年

  • 签名:逻辑 是否闰年([整数 年份])
  • 说明:判断是否闰年。省略年份时判断当前年。
  • 参数一│[整数 年份]: 可选;省略=当前年

格式化时长

  • 签名:文本 格式化时长(整数 时长, [逻辑 显示小时=真], [逻辑 补零=真])
  • 说明:把时长格式化为 h:mm:ss / mm:ss 文本。参数通常传毫秒(如播放器总时长);实现内会先 /1000 再拆时分秒。
  • 参数一│整数 时长: 毫秒数(常见);小于约 1000 的值按「已是毫秒」仍会 /1000,请注意单位
  • 参数二│[逻辑 显示小时=真]: 可选,默认真;假=不足一小时可不显示小时段
  • 参数三│[逻辑 补零=真]: 可选,默认真(00:01:11)

解析时间

  • 签名:文本 解析时间(文本 日期时间, [整数 输入格式=0], [整数 输出格式=1])
  • 说明:解析日期时间文本并按输出格式码重新格式化;可用于规范化输入。
  • 参数一│文本 日期时间: 原始文本
  • 参数二│[整数 输入格式=0]: 可选提示(以实现为准)
  • 参数三│[整数 输出格式=1]: 可选整数格式码;省略或 0 用默认

易错对照

错误 正确
时间戳单位搞错 看返回说明是秒还是毫秒
与日期时间对象混用 API 对象页见 datetime-obj

相关

日期时间对象 · 性能计时 · 系统操作