c++时间格式转换--strftime和strptime使用
来源:互联网 发布:开淘宝网店收费吗 编辑:程序博客网 时间:2024/05/16 01:09
strftime和strptime使用
整理自《linux程序设计》
这两个函数都是时间日期的格式控制函数,在功能上看起来正好相反。strftime将一个tm结构格式化为一个字符串,strptime则是将一个字符串格式化为一个tm结构。
- strftime
函数原型:size_t strftime(char *s,size_t maxsize,char *format,const struct tm *timeptr)
strftime函数对timeptr指向的tm结构所代表的时间和日期进行格式编排,其结果放在字符串s中。该字符串的长度被设置为(最少)maxsize个字符。格式字符串format用来对写入字符串的字符进行控制,它包含着将被传送到字符串里去的普通字符以及编排时间和日期格式的转换控制符。转换控制符见下表
具体的控制转换符说明可以查看man.
- strptime
函数原型: char *strptime(const char *buf,const char *format,struct tm *timeptr)
format字符串的构建方式和strftime的format字符串完全一样。strptime返回一个指针,指向转换过程处理的最后一个字符后面的那个字符。
看下边一个程序
12345678910111213141516171819202122232425262728
- <span>#include <stdio.h></span>
- <span>#include <stdlib.h></span>
- <span>#include <string.h></span>
- <span>#include <time.h></span>
- <span>int</span> main<span>(</span><span>)</span><span>{</span>
- <span>struct</span> tm <span>*</span>tm_ptr<span>,</span>timestruct<span>;</span>
- time_t the_time<span>;</span>
- <span>char</span> <span>*</span>buf<span>[</span><span>256</span><span>]</span><span>;</span>
- <span>(</span><span>void</span><span>)</span> time<span>(</span><span>&</span>the_time<span>)</span><span>;</span>
- tm_ptr<span>=</span>localtime<span>(</span><span>&</span>the_time<span>)</span><span>;</span>
- strftime<span>(</span>buf<span>,</span><span>256</span><span>,</span><span>"%A %d %B,%I:%S %p"</span><span>,</span>tm_ptr<span>)</span><span>;</span>
- <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span>printf</span></a><span>(</span><span>"strftime gives: %s<span>/n</span>"</span><span>,</span>buf<span>)</span><span>;</span>
- strcpy<span>(</span>buf<span>,</span><span>"Sat 26 July 2003,17:53 will do fine"</span><span>)</span><span>;</span>
- <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span>printf</span></a><span>(</span><span>"calling strptime with: %s<span>/n</span>"</span><span>,</span>buf<span>)</span><span>;</span>
- tm_ptr<span>+&</span>timestruct<span>;</span>
- result<span>=</span>strptime<span>(</span>buf<span>,</span><span>"%a %d %b %Y,%R"</span><span>,</span>tm_ptr<span>)</span><span>;</span>
- <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span>printf</span></a><span>(</span><span>"strptime consumed up to: %s<span>/n</span>"</span><span>,</span>result<span>)</span><span>;</span>
- <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span>printf</span></a><span>(</span><span>"strptime gives:<span>/n</span>"</span><span>)</span><span>;</span>
- <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span>printf</span></a><span>(</span><span>"date: %02d/%02d/%02d<span>/n</span>"</span><span>,</span>tm_ptr<span>-></span>tm_year<span>%</span><span>100</span><span>,</span>tm_ptr<span>-></span>tm_mon<span>+</span><span>1</span><span>,</span>tm_ptr<span>-></span>tm_mday<span>)</span><span>;</span>
- <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span>printf</span></a><span>(</span><span>"time: %02d:%02d<span>/n</span>"</span><span>,</span>tm_ptr<span>-></span>tm_hour<span>,</span>tm_ptr<span>-></span>tm_min<span>)</span><span>;</span>
- exit<span>(</span><span>0</span><span>)</span><span>;</span>
- <span>}</span>
运行后输出
strftime gives:Sunday 06 June, 11:55 AM
calling strptime with:Sat 26 July 2003,17:53 will do fine
strptime consumed up to:will do fine
strptime gives:
date: 03/07/26
time: 17:53
转自http://blog.csdn.net/wisage/article/details/6269218
- c++时间格式转换--strftime和strptime使用
- strftime和strptime使用
- strftime和strptime使用
- strftime和strptime使用(时间日期的格式控制函数)
- strftime和strptime使用(时间日期的格式控制函数)
- strftime和strptime使用(时间日期的格式控制函数)
- linux 时间格式化函数strftime和strptime使用
- linux 时间格式化函数strftime和strptime使用
- strftime、strptime和stime的使用
- 5.1.8 strftime()和strptime()的使用
- Python:time, strftime和strptime
- Python:time, strftime和strptime
- strptime与strftime函数的使用
- Python中time, strftime和strptime
- strftime时间格式参考
- strftime,strptime系统函数
- 获取系统时间格式strftime
- 【C#】时间日期格式转换:long和DateTime相互转换
- Service与Android系统实现(1)-- 应用程序里的Service
- lxc路由模式
- Oracle TRIM函数
- 三星为何把Note Edge手机做成“弯”的?
- linux编程--基本数据类型size_t
- c++时间格式转换--strftime和strptime使用
- qt-win-opensource-4.7.3-mingw.exe下载地址:不谢
- 一个不错的Oracle信息采集脚本--Solaris
- 在ff下报错event is not defined以及document.all和document.getElemnetById的区别
- shell脚本
- 今天起开始firefox 系统的全面了解
- loadrunner_Controller技巧_overlay
- iWatch也有土豪金版:8GB存储512MB RAM
- hdu 1054 Strategic Game (二分图 最小顶点覆盖)