Skip to content

format 格式模板说明

Dayuts.format(formatStr) 通过格式模板将日期渲染为字符串。模板中的英文字母序列会被识别为 token,其余字符(中文、-:/ 等)作为原样字面量输出。

未传模板时使用默认模板 'YYYY-MM-DDTHH:mm:ssZ'

同一种 token 的不同长度控制补零(MM/MM)与完整/缩写形式(MMMM/MMM)等细节,具体见下表。以下示例均以 2024-05-20 15:03:07(zh-cn 语言,周一)为例。

Token 表

年 Y

Token输出示例说明
YYYY20244 位年份,不足补 0
YY24年份后两位

月 M

Token输出示例说明
MMMM五月月份全名(zh-cn 为 五月,en 为 May
MMM5月月份缩写,取全名后 3 位 / 本地化缩写
MM052 位月份,不足补 0
M5月份,不补 0

日 DD 与星期 d

Token输出示例说明
DD202 位日期,不足补 0
D20日期,不补 0
dddd星期一星期全名
ddd周一星期缩写
dd星期最小形式
d1星期几数字(getDay(),0=周日,6=周六)

时 24 小时制 H 与 12 小时制 h

Token输出示例说明
HH1524 小时制,不足补 0
H1524 小时制,不补 0
hh0312 小时制(${H % 12 == 0 ? 12 : H % 12}),不足补 0
h312 小时制,不补 0

分 m、秒 s、毫秒 SSS

Token输出示例说明
mm03分钟,不足补 0
m3分钟,不补 0
ss07秒,不足补 0
s7秒,不补 0
SSS007毫秒,3 位补 0

上午/下午 A a

Token输出示例说明
A下午上午/下午,随语言变化(en 为 AM/PM
a下午上午/下午小写形式(en 为 am/pm

zh-cn 语言的 A/a 按时间段输出本地称谓:凌晨(<6点)、早上(<9点)、上午(<11点)、中午(<13点)、下午(<18点)、晚上(其余)。

时区 Z

Token输出示例说明
Z+08:00UTC 偏移,格式 ±HH:mm(如 +08:00-05:00

转义 [ ]

在模板中使用 [方括号] 包裹的内容按字面量输出,不参与 token 解析。

Token输出示例说明
[YYYY]YYYY方括号内按字面量输出

用法示例

typescript
const d = dayuts('2024-05-20 15:03:07', undefined, 'zh-cn')

d.format('YYYY-MM-DD HH:mm:ss')   // "2024-05-20 15:03:07"
d.format('YYYY年M月D日 dddd')      // "2024年5月20日 星期一"
d.format('MM/DD [Year] YYYY')     // "05/20 Year 2024"
d.format('YYYY-MM-DDTHH:mm:ssZ')  // "2024-05-20T15:03:07+08:00"
d.format('hh:mm a')               // "03:07 下午"

与 DateLib.fmtDate 的区别

注意:DateLib.fmtDate 使用另一套小写 token 体系(y/M/d/H/m/s),默认模板为 'yyyy-MM-dd',并额外支持在模板中出现 /星期/礼拜 时追加星期文案。两套 token 互不通用,详见 DateLib 方法

使用 MIT 协议