时间函数 dateFormat() 可以将一个时间类型转为指定格式的字符串。
Arguments:
- 时间 <datetime | timestamp | string>
- 格式 <string>
Returns:
- 时间字符串 <string>
可嵌入格式的指令:
指令 | 值 | 示例 |
---|---|---|
%a | 星期几名称的简写(系统语言环境) | (en_US) Sun, Mon, ... |
%A | 星期几名称的全称(系统语言环境) | (en_US) Sunday, Monday, ... |
%b | 月份名称的简写(系统语言环境) | (en_US) Jan, Feb, ... |
%B | 月份名称的全称(系统语言环境) | (en_US) January, February, ... |
%c | 系统默认的日期和时间表示法 | 'Wed Jan 11 10:59:28 2023' |
%C | 表示世纪的数字(年份除以 100) | 00, 01, ..., 99 |
%d | 一个月中的第几天(以零填充) | 01, 02, ..., 31 |
%D | 相当于 %m/%d/%y |
'01/11/23' |
%e | 一个月中的第几天 | 1, 2, ..., 31 |
%Ez | 时区 | '+08:00' |
%g | 2 位数年份(不带世纪) | 00, 01, ..., 99 |
%G | 4 位数年份 | 0000, 0001, ..., 9999 |
%h | 相当于 %b |
见 %b 示例 |
%H | 小时,使用 24 小时制(以零填充) | 00, 02, ..., 23 |
%I | 小时,使用 12 小时制(以零填充) | 01, 02, ..., 12 |
%j | 一年中的第几天(以零填充) | 001, 002, ..., 366 |
%m | 月份的数字表示(以零填充) | 01, 02, ..., 12 |
%M | 分(以零填充) | 00, 01, ..., 59 |
%n | 换行符 | |
%p | AM 或 PM | (en_US) AM, PM |
%P | am 或 pm | (en_US) am, pm |
%r | 相当于 %I/%M/%S %p |
'01:49:23 AM' |
%R | 相当于 %H:%M |
'13:49' |
%S | 秒(以零填充) | 00, 01, ..., 59 |
%t | 制表符 | |
%T | 相当于 %H:%M:%S 格式 |
'23:02:05' |
%u | 星期几的数字表示,1 为星期一(在 Sun Solaris 系统中 1 为星期日) | 1, 2, ..., 7 |
%U | 星期的数字表示,从一年中的第一个星期日开始记作第 01 周(以零填充),此前的日子记作第 00 周 | 00, 01, ..., 53 |
%V | 星期的数字表示,一年中的第一天到第一个星期日如果 >= 4 天则记作第 01 周(以零填充),否则记作前一年的最后一周 | 01, 02, ..., 53 |
%W | 星期的数字表示,从一年中的第一个星期一开始记作第 01 周(以零填充),此前的日子记作第 00 周 | 00, 01, ..., 53 |
%w | 星期几的数字表示,0 为星期日 | 0, 1, ..., 6 |
%x | 系统默认的日期表示法 | '01/11/23' |
%X | 系统默认的时间表示法 | '06:38:45' |
%y | 相当于 %g |
见 %g 示例 |
%Y | 相当于 %G |
见 %G 示例 |
%z | UTC 偏移量,格式为 ±HHMM [SS] | +0000, -0400, +1030, ... |
%Z | 时区名称 | GMT, UTC, IST, CST, ... |
%% | 输出一个 % 字符 | % |
格式化一个常量
示例:将 "2020-01-02 00:05:32" 转为 yy-mm-dd hh:mm 格式
return dateFormat("2020-01-02 00:05:32", "%y-%m-%d %R")
格式化一个函数值
示例:将当前系统时间转为 yyyy/mm/dd 格式并使用 AM/PM 的时间标记法
return dateFormat(now(), "%Y/%m/%d %r")
格式化一个别名
示例:查找 10 个 @transfer 边,返回转账时间的时区
find().edges({@transfer}) as e
limit 10
return dateFormat(e.time, "%Ez")
格式化当前属性值
示例:查找 10 个在周末进行的 @transfer 边
find().edges({dateFormat(@transfer.time, "%w") in [0, 6]}) as e
limit 10
return e{*}