日期时间格式化指令

ANSI C标准规定了解析或者格式化日期时间字符串的指令。

当前支持的指令完全兼容C标准(1989版本),具体示例及注释如下。

指令

含义

示例

注释

%a

工作日的缩写。

Mon,...,Fri

当前以en-US为展示,暂不支持其他locale。

%A

工作日的全拼。

Monday,...,Friday

当前以en-US为展示,暂不支持其他locale。

%w

以十进制数显示的工作日,其中0表示星期日,6表示星期六。

0,1,2,3,4,5,6

%d

补0后,以十进制数显示月份中的一天。

01,02,...,31

解析时%d、%m、%H、%I、%M、%S、%J、%U、%W、%V、%y不要求开头0补齐。

%b

本地月份的缩写。

Jan,Feb,...,Dec

当前以en-US为展示,暂不支持其他locale。

%B

本地月份的全拼。

January,February,..., December

解析时%d、%m、%H、%I、%M、%S、%J、%U、%W、%V、%y不要求开头0补齐。

%m

补0后,以十进制数显示的月份。

01,02,...,12

解析时%d、%m、%H、%I、%M、%S、%J、%U、%W、%V、%y不要求开头0补齐。

%y

补0后,以十进制数表示的不带世纪的年份。

00,01,...,99

解析时%d、%m、%H、%I、%M、%S、%J、%U、%W、%V、%y不要求开头0补齐。

%Y

十进制数表示的带世纪的年份。

0001,0002,...,2013,2014,...,9998,9999

解析年时,范围是[1,9999],如果年小于1000,必须用0填充为4位数。例如0180表示公元180年。

%H

24小时制,由0填充的十进制。

00,01,...,23

解析时%d、%m、%H、%I、%M、%S、%J、%U、%W、%V、%y不要求开头0补齐。

%I

12小时制,由0填充的十进制。

01,02,...,12

解析时%d、%m、%H、%I、%M、%S、%J、%U、%W、%V、%y不要求开头0补齐。

%p

本地化的AM或PM。

AM,PM

  • 当前以en-US为展示,暂不支持其他locale。

  • 解析时,%p仅影响%I小时部分。

%M

补0后,以十进制数显示的分钟。

00,01,...,59

解析时%d、%m、%H、%I、%M、%S、%j、%U、%W、%V、%y不要求开头0补齐。

%S

补0后,以十进制数显示的秒。

00,01,...,59

  • 不支持闰秒。

  • 解析时%d、%m、%H、%I、%M、%S、%j、%U、%W、%V、%y不要求开头0补齐。

%f

微秒,由0填充的十进制。

000000,000001,..., 999999

当用于解析微秒时, %f可以接受0-6个字符的数字串。

%z

UTC偏移形式:±HHMM[SS[.ffffff]]。日期时间不含时区时为空串。

(empty),+0000,-0400,+1030,+063415,-030712.345216

不包含时区的日期时间对象, %z%Z会被替换为空串。%z格式化为±HHMM[SS[.ffffff]]时,并不要求必须提供分钟。解析时支持分号分隔的字符串,+01:00:00,另外Z等于+00:00

%Z

时区名。日期缺少时区时为空串。

(empty),UTC,EST,CST

%j

每年的第几天。

001,002,...,366

解析时%d、%m、%H、%I、%M、%S、%J、%U、%W、%V、%y不要求开头0补齐。

%U

每年的第几周,星期天是每周第一天。一年中第一个星期天前的日子都被视为week 0。

00,01,...,53

  • 解析时,%U%W仅用于计算。

  • 解析时%d、%m、%H、%I、%M、%S、%j、%U、%W、%V、%y不要求开头0补齐。

%W

每年的第几周,星期一是每周第一天。一年中第一个星期一前的日子都被视为week 0。

00,01,...,53

  • 解析时,%U%W仅用于计算。

  • 解析时%d、%m、%H、%I、%M、%S、%j、%U、%W、%V、%y不要求开头0补齐。

%c

本地化的日期和时间表示。

Tue Aug 16 21:30:00 1988

当前以en-US为展示,暂不支持其他locale。

%x

本地化的日期表示。

08/16/88

当前以en-US为展示,暂不支持其他locale。

%X

本地化的时间表示。

21:30:00

当前以en-US为展示,暂不支持其他locale。

%%

字面的 '%' 字符。

%

为方便使用,也支持部分非标准C89指令:

指令

含义

示例

注释

%G

ISO 8601,年的形式,包含ISO周信息%V。

0001,0002,...,2013,2014,...,9998,9999

解析时%V仅用于计算。

%u

ISO 8601,每周第几天,星期一是每周第一天。

1,2,...,7

%V

ISO 8601,每年第几周,星期一是每周第一天。

01,02,...,53

  • 解析时%V仅用于计算。

  • 解析时%d、%m、%H、%I、%M、%S、%J、%U、%W、%V、%y不要求开头0补齐。