TTime::FormatL 详解
2010-04-20 16:05:00 来源:WEB开发网在A前面可以加上+或者-,
%+A表示只有TLocale:: AmPmSymbolPosition()被设置为ELocaleAfter时,才往格式化后的字符串中插入am/pm;
%-A表示只有TLocale:: AmPmSymbolPosition()被设置为ELocaleBefore时,才往格式化后的字符串中插入am/pm。
很显然TLocale:: AmPmSymbolPosition()这个设置在时间日期设置中也是没有的。
eg:%-A%I:%T:%S%+A这个串格式化之后的字符串中am/pm出现的位置和设定中的一致。
%-A%I:%T:%S%则表示只有设定了am/pm标志在前的情况下,am/pm才被插入到格式化后的字符串的开头。
B:和A唯一的区别就是只有在12小时制情况下才显示am/pm。同样也有%-B、%+B两种扩展选项。
J:判断本地设置是12小时制还是24小时制。%J表示本地设置是12小时制的情况下,在%J之后出现的前导0都被强制去除,所以有了%J参数,没有必要再加*号。
注意点:
使用%F表示本地无关时,不能使用%1~%5参数
不使用%F参数时,%M、%D、%Y参数不起任何作用,但是%*M、%*D、%*Y起到去除前导0(%*Y是取2位数年份)的作用
SDK中指出:当使用%/0、%/1、%/2、%/3分隔%1~%5代表的日期的时候(或者使用%:0、%:1、%:2、%:3分隔%H、%I、%T、 %S代表的时间的时候),4个分隔符都要被指定,尽管系统默认S0和S3都是’’(空字符)。个人理解这么做是为了让格式串尽量规范,容易被读懂,事实上这4个分隔符想怎么用就怎么用,不用都行,唯一的限制在于:当使用%.分隔秒和微秒的时候,%.应当被放在S2和S3的中间。(其实说到底%.系统默认就是点号,一般程序员也不会无聊到调用TLocale::SetDecimalSeparator()方法来更改这个分隔符的)
更多精彩
赞助商链接