方法
自: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:等同于%bH: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