置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

模块:模糊时间/doc

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳到导航 跳到搜索

这是Module:模糊时间的文档页面

模糊时间模块用于匹配获取一个时间文本,进而,可以进行时间计算、时间比较、时区调整、依据给定的格式进行格式化。 与其他时间函数不同之处在于,本模块支持不规范的、模糊描述以及时间段描述的文本,并允许在格式化时省略精确度不足的内容。

函数

initialize(from,to,connect)

初始化设置。

  • from为文本语言,可选zh/en/all,默认为zh
  • to为格式化目标语言,可选zh/en,默认为zh
  • connect为时间连接符,指格式化时使用时间段概念时连接两时间点的文本。默认为

toTime(text,analysis_pattern)

将文本解析转换为time表time表具有os.time可以识别的结构。

  • 能识别ISO 8601格式的时间,如2024-10-05T09:12:29+00:00。但暂不识别追加的时区文本。
  • 能识别带有单位的文本,如2012年。支持乱序。
  • 能识别特定的时间描述,如星期五凌晨
  • 字符-\被视为时间段的描述关键字。
  • 字符%s中文空格,被忽略。

基本可以认为,所有该函数可以输出的格式化格式,都可以被其识别。

如果指定analysis_pattern,则将使用固定的格式进行匹配。对于固定格式的文本,将大大节省解析时间。其中格式匹配符与#占位符标准相同。没有指定该参数的场合,函数将试图使用所有可能的格式进行分析匹配。

time表的属性

yearmonthdayweekwdayydayhourminutesecond

time表的函数

time表可以执行以下函数:

运算符
time:__connect(other)

..。连接两时间,获得时间段。

time:__add(other)

+。时间加法。

time:__sub(other)

-。时间减法。

其他函数
time:add(tag,value)

按标签计算。标签可以为属性其一。暂且唯有原time中具有该精确度的标签才有效。

time:convert(o_timezone,c_timezone)

时区转换。 c_timezone默认为当前时区。o_timezone默认为{{TimeZone}}所定义的时区。

time:supply(other,pre,after)

补足精确度。使用另一时间对其补足缺失的精确度以及值。已有部分则忽略。 pre为true则补足前部缺失值(如年、月),after设置为true则补足后部缺失值(如秒、分)。两参数默认为true。

time:getNumber()

获取时间段前后的对应os.time数值。

time:sort()

规范数据,计算后如果需要从属性获得准确值需调用。在格式化前会自动调用。

time:format(pattern,ignore)

格式化为文本。 ignore如果为true,则在非必要时忽略区域性描述(诸如旬)(如果精确度只达到该描述,则不省略)。如果为false,则强制要求所有精确度都输出值。ignore默认为nil,此时正常输出,忽略不具备的精确度。

其中pattern的占位符标准详见#占位符

format(text,pattern,ignore,o_timezone,c_timezone,a_pattern)

格式化输出。这个函数是功能的集合版本。

  • text为时间文本
  • ignore同上。
  • pattern的占位符标准详见#格式化
  • o_timezone原时区,即文本使用时区
  • c_timezone现时区,即显示时区。默认采用{{timezone}}模板定义的时区。
  • a_pattern,分析用字符串。

格式化

格式化使用作为时间段描述方式(或许可以考虑增加到占位符中)。 格式化使用的替换用占位符如下。 待扩展中文数字表达。

示例时间:2024年10月5日9时12分29秒


类型 格式化参数 说明 输出

%E 日期-年月日 (ISO 8601格式)(不支持省略) 2024-10-05

%(Eo) 日期-年月日 (ISO 8601格式)(不支持省略) 2024.10.05
%(Ew) 日期-年周星期 (ISO 8601格式)(不支持省略) 2024-W40-6
%e 时间-时分秒 (ISO 8601格式)(不支持省略) 09:12:29
%a 根据时间是上午还是下午,输出am或pm am
%(au) 根据时间是上午还是下午,输出AM或PM AM
%(cf) 日期-世纪,2位数字,补足前导0 21
%(tf) 日期-年代,2位数字,补足前导0 20
%(yf) 日期-年份,4位数字,补足前导0 2024
%(mf) 日期-月,2位数字,补足前导0 10
%(df) 日期-日,2位数字,补足前导0 05
%(wf) 日期-年内第几周,2位数字,补足前导0 40
%(hf) 时间-小时,2位数字,补足前导0 09
%(if) 时间-分钟,2位数字,补足前导0 12
%(sf) 时间-秒,2位数字,补足前导0 29
%c 日期-世纪 21
%t 日期-年代 2020
%y 日期-年份 2024
%m 日期-月 10
%w 日期-年内第几周 40
%d 日期-日 5
%(dy) 日期-日 年内第几日 279
%l 日期-星期,1位数字 6
%h 时间-小时 9
%(hy) 时间-小时 十二小时制 9
%i 时间-分钟 12
%s 时间-秒 29
%X 年月日时分秒 (ISO 8601格式)(不支持省略) 2024-10-05 T09:12:29
%x 年周日时分秒 (ISO 8601格式)(不支持省略) 2024W40-5 T09:12:29
en %T 2020s

%(Ms) Oct
%M October
%(Ls) Sat
%L Saturday
%D 5nd
zh %C 日期-世纪 单位“世纪” 21世纪

%(Tf) 日期-年代 单位“年代”,只取后两位 20年代
%T 日期-年代 单位“年代” 2020年代
%Y 日期-年 单位“年” 2024年
%M 日期-月 单位“月” 10月
%(Mc) 日期-月 中文文字 十月
%W 日期-周 单位“周” 40周
%D 日期-日 单位“日” 5日
%(Dy) 日期-日 年内第几日 单位“日” 279日
%(Do) 日期-日 单位“号” 5号
%L 日期-星期 中文文字“星期” 星期六
%(Lss) 日期-星期 中文文字大写“周” 周六
%(Ls) 日期-星期 只输出一个中文文字
%H 时间-时 单位“时” 9时
%(Hy) 时间-时 单位“时” 十二小时制 9时
%(Ho) 时间-时 单位“点” 9点
%I 时间-分 单位“分” 12分
%S 时间-秒 单位“秒” 29秒
%(Mi) 日期-月内描述“旬”,十日为一旬 上旬
%A 时间-根据时间输出上午或下午 上午
%(Di) 时间-日内详细描述 上午