方法
自:2.26
声明 [源]
gchar*
g_date_time_format (
GDateTime* datetime,
const gchar* format
)
描述 [源]
创建一个表示请求的format
的新分配字符串。
此函数理解的格式字符串是C99中指定的strftime()
格式语言的子集。不支持D
、U
和W
转换,也不支持E
修饰符。然而,支持GNU扩展%k
、%l
、%s
和P
,以及0
、_
和-
修饰符。还支持Python扩展%f
。
与strftime()
不同,此函数始终产生一个UTF-8
字符串,而不考虑当前的区域设置。请注意,许多格式的渲染是区域相关的,可能无法与strftime()
的输出完全匹配。
以下格式说明符受支持
%a
:根据当前区域设置的缩写星期名称A
:根据当前区域设置的完整星期名称%b
:根据当前区域设置的缩写月份名称B
:根据当前区域设置的完整月份名称%c
:当前区域设置的日期和时间首选表示C
:世纪数(年份/100)作为两位整数(00-99)%d
:月份天数,作为十进制数(范围01到31)%e
:月份天数,作为十进制数(范围1到31);个位数前面有一个数字空间(U+2007)F
:等同于`Y`-%m-%d`(ISO 8601日期格式)
%g
:基于ISO 8601周年的最后两位作为十进制数(00-99)。与V
和%u
配合使用效果良好。G
:基于ISO 8601周年的年份作为十进制数。与V
和%u
配合使用效果良好。%h
:等同于%b
H
:24小时制的小时作为十进制数(范围00到23)I
:12小时制的小时作为十进制数(范围01到12)%j
:年天数,作为十进制数(范围001到366)%k
:24小时制的小时作为十进制数(范围0到23);个位数前面有一个数字空间(U+2007)%l
:12小时制的小时作为十进制数(范围1到12);个位数前面有一个数字空间(U+2007)%m
:月份作为十进制数(范围01到12)M
:分钟作为十进制数(范围00到59)%f
:微秒作为十进制数(范围000000到999999)%p
:根据给定的时间值,为‘AM’或‘PM’,或当前地区相应的字符串。中午被视为‘PM’,午夜视为‘AM’。建议不要使用此格式说明符,因为许多地区没有AM/PM格式概念。请使用%c
或X
代替。P
:类似于%p
,但小写:‘am’、‘pm’或当前地区的相应字符串。建议不要使用此格式说明符,因为许多地区没有AM/PM格式概念。请使用%c
或X
代替。%r
:时间的上午或下午表示法。建议不要使用此格式说明符,因为许多地区没有AM/PM格式概念。请使用%c
或X
代替。R
:24小时制的时间表示法(H`:`M
)%s
:自纪元以来的秒数,即自1970-01-01 00:00:00 UTC以来S
:秒作为十进制数(范围00到60)%t
:一个制表符T
:带秒的24小时制时间表示法(H`:`M`:`S
)%u
:ISO 8601标准星期数作为十进制数,范围1到7,星期一为1。与G
和V
配合使用效果良好。V
:当前年份ISO 8601标准周数作为十进制数,范围01到53,其中星期1是新年中包含至少4天的第一周。参见g_date_time_get_week_of_year()。与G
和%u
配合使用效果良好。%w
:星期数作为十进制数,范围0到6,星期天为0。这不是ISO 8601标准格式——请使用%u
代替。%x
:当前地区首选的日期表示法,不包含时间X
:当前地区首选的时间表示法,不包含日期%y
:年份作为十进制数,不带世纪Y
:年份作为十进制数,包括世纪%z
:从UTC偏移的时间区域(+hhmm
)%:z
:从UTC偏移的时间区域(+hh:mm
)。这是gnulibstrftime()
的扩展。自:2.38%::z
:从UTC偏移的时间区域(+hh:mm:ss
)。这是gnulibstrftime()
的扩展。自:2.38%:::z
: 以UTC偏移量表示时区,用:
表示必要的精度(例如,-04
,+05:30
)。这是gnulibstrftime()
的扩展。自:2.38Z
: 时区、名称或缩写%%
: 文字面量%
字符
某些转换指定符可以通过在其前面放置一个或多个修饰符来修改。
以下修饰符支持许多数值转换
O
: 如果当前的区域设置支持这些,则使用替代数字符号。_
: 用空格填充数值结果。这覆盖了指定符的默认填充。-
: 不填充数值结果。这覆盖了指定符的默认填充。0
: 用零填充数值结果。这覆盖了指定符的默认填充。
以下修饰符支持许多字母转换
^
: 如果可能使用大写字母。这是gnulibstrftime()
的扩展。自:2.80#
: 如果可能使用相反的大小写。这是gnulibstrftime()
的扩展。自:2.80
此外,当与B
、b
或h
一起使用时,O
产生月份名称的替代形式。在没有日期号(例如,独立存在)的情况下使用月份名称时应该使用替代形式。由于某些语言的语法规则(如波罗的海语、斯拉夫语、希腊语等),在一些语言中需要使用这种形式。对于其他语言则没有区别。OB
是GNU和BSD strftime()
扩展,预计将添加到未来POSIX规范中,%Ob
和%Oh
是GNU strftime()
扩展。自:2.56
自GLib 2.80以来,当使用E
与%c
、C
、%x
、X
、%y
或Y
一同,日期将以特定于区域设置的替代纪元表示法进行格式化。这通常用于泰国阳历或日本纪元名称等。
%Ec
: 当前区域设置的首选日期和时间表示法,使用替代纪元表示法EC
: 纪元的名称%Ex
: 当前区域设置的优选日期表示法,不包含时间,使用替代纪元表示法EX
: 当前区域设置的优选时间表示法,不包含日期,使用替代纪元表示法%Ey
: 自EC
指定纪元开始以来的年份EY
: 完全的替代年份表示法。
可用自:2.26