﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-gan-随笔分类-Tips</title><link>http://www.cppblog.com/gan/category/9059.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 07 Dec 2008 16:58:38 GMT</lastBuildDate><pubDate>Sun, 07 Dec 2008 16:58:38 GMT</pubDate><ttl>60</ttl><item><title>strftime格式记录</title><link>http://www.cppblog.com/gan/archive/2008/12/07/68788.html</link><dc:creator>gan</dc:creator><author>gan</author><pubDate>Sun, 07 Dec 2008 13:12:00 GMT</pubDate><guid>http://www.cppblog.com/gan/archive/2008/12/07/68788.html</guid><wfw:comment>http://www.cppblog.com/gan/comments/68788.html</wfw:comment><comments>http://www.cppblog.com/gan/archive/2008/12/07/68788.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gan/comments/commentRss/68788.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gan/services/trackbacks/68788.html</trackback:ping><description><![CDATA[strftime（）函数将时间格式化为我们想要的格式。它的原型如下：<br><br>size_t strftime(<br>&nbsp;&nbsp;&nbsp;&nbsp; char *strDest,<br>&nbsp;&nbsp;&nbsp;&nbsp; size_t maxsize,<br>&nbsp;&nbsp;&nbsp;&nbsp; const char *format,<br>&nbsp;&nbsp;&nbsp;&nbsp; const struct tm *timeptr <br>);<br><br>我们可以根据format指向字符串中格式命令把timeptr中保存的时间信息放在strDest指向的字符串中，最多向strDest中存放maxsize个字符。该函数返回向strDest指向的字符串中放置的字符数。<br><br>函数strftime()的操作有些类似于sprintf()：识别以百分号(%)开始的格式命令集合，格式化输出结果放在一个字符串中。格式化命令说明串
strDest中各种日期和时间信息的确切表示方法。格式串中的其他字符原样放进串中。格式命令列在下面，它们是区分大小写的。<br><br>%a 星期几的简写 <br>%A 星期几的全称 <br>%b 月分的简写 <br>%B 月份的全称 <br>%c 标准的日期的时间串 <br>%C 年份的后两位数字 <br>%d 十进制表示的每月的第几天 <br>%D 月/天/年 <br>%e 在两字符域中，十进制表示的每月的第几天 <br>%F 年-月-日 <br>%g 年份的后两位数字，使用基于周的年 <br>%G 年分，使用基于周的年 <br>%h 简写的月份名 <br>%H 24小时制的小时 <br>%I 12小时制的小时<br>%j 十进制表示的每年的第几天 <br>%m 十进制表示的月份 <br>%M 十时制表示的分钟数 <br>%n 新行符 <br>%p 本地的AM或PM的等价显示 <br>%r 12小时的时间 <br>%R 显示小时和分钟：hh:mm <br>%S 十进制的秒数 <br>%t 水平制表符 <br>%T 显示时分秒：hh:mm:ss <br>%u 每周的第几天，星期一为第一天 （值从0到6，星期一为0）<br>%U 第年的第几周，把星期日做为第一天（值从0到53）<br>%V 每年的第几周，使用基于周的年 <br>%w 十进制表示的星期几（值从0到6，星期天为0）<br>%W 每年的第几周，把星期一做为第一天（值从0到53） <br>%x 标准的日期串 <br>%X 标准的时间串 <br>%y 不带世纪的十进制年份（值从0到99）<br>%Y 带世纪部分的十制年份 <br>%z，%Z 时区名称，如果不能得到时区名称则返回空字符。<br>%% 百分号<br><br>如果想显示现在是几点了，并以12小时制显示，就象下面这段程序：<br><br>＃i nclude &#8220;time.h&#8221;<br>＃i nclude &#8220;stdio.h&#8221;<br>int main(void)<br>{<br>struct tm *ptr;<br>time_t lt;<br>char str[80];<br>lt=time(NULL);<br>ptr=localtime(&lt;);<br>strftime(str,100,"It is now %I %p",ptr);<br>printf(str);<br>return 0;<br>}<br><br>其运行结果为：<br>It is now 4PM<br><br>而下面的程序则显示当前的完整日期：<br><br>＃i nclude <stdio.h></stdio.h><br>＃i nclude
<time.h></time.h><br><br>void main( void )<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct tm *newtime;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char tmpbuf[128];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; time_t lt1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; time( &lt;1 );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newtime=localtime(&lt;1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strftime( tmpbuf, 128, "Today is %A, day %d of %B in the year %Y.\n", newtime);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(tmpbuf);<br>}<br><br>运行结果：<br><br>Today is Saturday, day 30 of July in the year 2005.
<br><img src ="http://www.cppblog.com/gan/aggbug/68788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gan/" target="_blank">gan</a> 2008-12-07 21:12 <a href="http://www.cppblog.com/gan/archive/2008/12/07/68788.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>