TTime::FormatL 详解
2010-04-20 16:05:00 来源:WEB开发网示例:
TTime time;
Time.HomeTime();
TBuf<32> timeBuf;
time.FormatL(timeBuf,_L(“%F%Y/%M/%D,%H:%T:%S”)); // 2008/08/16,21:22:22
详解:
格式串分为本地相关和本地无关格式串,也就是说和系统的时间日期中设置的格式是否相关。
以下所有格式字符都要加%
本地无关:
%:因为%是参数字符,所以需要输出%的时候,要用两个连续的%%进行转义
*:加在%后,表示需要缩写,比如%*T表示对分钟进行缩写,如果不是两位数,则去掉前导0
C:6位的微秒,%C默认是6位的,%*C2表示只取前两位,%*C4则取前4位
S:2位的秒,加*去掉前导0
T:2位的分,加*去掉前导0
H:24小时制的时,加*去掉前导0
I:12小时制的时,加不加*都会去掉前导0
F:%F参数表示D/M/Y三个参数都是本地无关的,按照格式串原样输出,%F需要用在%D、%M、%Y之前
D:2位的日,加*去掉前导0
M:2位的月,加*去掉前导0
Y:4位的年,加*去掉前两个数字,比如2008只显示08
E:星期,英文环境下,Sunday~Saturday,加*显示缩写,Sun~Sat;中文环境下,星期一~星期日,加*显示缩写,一~日
N:月的名称,英文环境下,January~December,加*显示缩写,Jan~Dec;中文环境下,1月~12月,加*显示缩写,阿拉伯数字 1~12。注意1月~12月数字都是阿拉伯数字,而不是汉字一~十二
W:2位数字,当前日期处于一年中的第几周,加*去掉前导0
X:日期后缀。例如%*D%X显示形如3rd(三号),%D%X显示形如02nd(二号)
Z:3位数字,当前日期处于一年中的第几天,加*去掉前导0
本地相关:
.:(点号)%.默认是小数点,表示分隔秒与毫秒之间的字符。可以通过TLocale::SetDecimalSeparator()设定。
::(冒号)%:表示获取本地设置中的时间分隔符,紧跟一个0~3范围的数字来指定哪一个日期分隔符。
格式如下:S0 XX S1 YY S2 ZZ S3,其中XX、YY、ZZ代表时分秒,S0~S3代表4个分隔符。%:0表示第一个分隔符,依此类推。需要注意的是,本地设置中的时间分隔符只提供冒号和点号两种字符。当然,可以通过TLocale:: SetTimeSeparator()对4个分隔符进行设置,模拟器和真机都未试验成功,待机状态的时间分隔符未更改。
更多精彩
赞助商链接