发布于2019-09-05 18:13 阅读(1550) 评论(0) 点赞(27) 收藏(4)
还是从C开始理一理吧。翻翻C标准(C++中的东西我看不懂),相关的也就是time.h这个东西了。
宏 |
NULL CLOCKS_PER_SEC |
类型 |
size_t clock_t time_t |
结构体 |
tm |
函数 |
asctime clock difftime localtime strftime |
暂时抛开和clock相关的东西。只看字面上和time直接相关的东西。
如何从操作系统获取时间呢?
time_t time(time_t *t);
该函数返回从某个时间点(epoch)到现在为止所经过的秒数。(这个数称为日历时间) 比如:
1319206097
这个数字对人来说可真不友好。比如上面这个对应的具体日期是什么,如果不是我写的我还真不知道
char *ctime(const time_t *timep);
我们知道,同一时刻各个时区的时间是不同的。这个函数会考虑当前的时区(通过环境变量TZ)
Fri Oct 21 22:08:17 2011\n\0
这下好看多了,但还是很不够...
我们可以将日历时间,转成包含时分秒等信息的结构体。这样处理起来就方面多了。
struct tm *gmtime(const time_t *timep);
struct tm *localtime(const time_t *timep);
gmtime |
localtime |
|
17 |
17 |
秒 |
8 |
8 |
分 |
14 |
22 |
时 |
21 |
21 |
21日 |
9 |
9 |
10月(从0开始算) |
111 |
111 |
2011年(从1900开始) |
5 |
5 |
周五 |
293 |
293 |
一年中的第293天 |
0 |
0 |
不是夏时制 |
要从分解时间转换会日历时间,则使用
time_t mktime(struct tm *tm);
前面的ctime可以从日历时间转成字符串,那么从分解时间如何转成字符串呢?
char *asctime(const struct tm *tm);
比如:前面的gmtime和localtime得到的分解时间,分别对应
Fri Oct 21 14:24:34 2011
Fri Oct 21 22:24:34 2011
不过这个东西太死板了吧,想自定义字符串怎么办?
size_t strftime(char *s, size_t max, const char *format,
const struct tm *tm);
和printf类似,有一大堆转换符可用,这样一来,我们可以得到
Fri
Friday
2011-10-21
10:24:34 PM
...
简单罗列一下:
一个整数类型,但具体的范围和精度是由编译器实现所定义的。
结构体tm 表示 分解时间(broken-down time)
struct tm { |
|
int tm_sec; |
|
int tm_min; |
/* 分钟: [0 - 59] */ |
int tm_hour; |
/* 小时: [0 - 23] */ |
int tm_mday; |
/* 日: [1 - 31] */ |
int tm_mon; |
/* 月: [0 - 11] */ |
int tm_year; |
/* 年: 从1900年开始算起 */ |
int tm_wday; |
/* 星期X: [0 - 6] */ |
int tm_yday; |
/* 一年中第X天: [0 - 365] */ |
int tm_isdst; |
/* 夏时制标记: <0, 0, >0 */ |
}; |
夏时值,即:日光节约时制(Daylight Saving Time)
clock_t clock(void);
返回程序自开始执行到目前为止所占用的处理机时间。如果处理机时间不可使用,那么返回-1。clock()/CLOCKS_PER_SEC是以秒为单位表示的时间。
在Unix下,与time()相比,
int gettimeofday(struct timeval *tv, struct timezone *tz);
可以获得更高的分辨率(最高为微秒)。
QThread::sleep()在unix下的实现使用该函数。
python的time模块中的time()/sleep()也使用该函数。
函数strftime()生成的字符串受locale中的LC_TIME影响
作者:iuie9493
链接:https://www.pythonheidong.com/blog/article/96778/c09717e203eb8abb2798/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!