UNIX环境高级编程——时间和日期
2024-10-13 13:12:48
由UNIX内核提供的基本时间服务是计算自国际标准时间公元1970年1月1日00:00:00以来经过的秒数。这种秒数是以数据类型time_t表示。
1. time函数返回当前时间和日期:
time_t time(time_t *calptr);
时间值总是作为函数返回。如果参数不为空,则时间值也存放在由calptr指向的单元内。
2. 与time函数相比,gettimeofday提供了更高的分辨率(最高位微秒级)。
int gettimeofday(struct timeval* tp,void* tzp);
tzp的唯一合法值是NULL,其他值则将产生不确定的结果。
gettimeofday函数将当前时间存放在tp指向的timeval结构中,而该结构存储秒和微妙。
struct timeval{
long int tv_sec; // 秒数
long int tv_usec; // 微秒数
}
3. 两个函数localtime和gmtime将日历时间转换成以年、月、日、时、分、秒、周日表示的时间,并将这些存放在一个tm结构中。
struct tm
{
int tm_sec;//代表目前秒数,正常范围为0-59,但允许至61秒
int tm_min;//代表目前分数,范围0-59
int tm_hour;//从午夜算起的时数,范围为0-23
int tm_mday;//目前月份的日数,范围01-31
int tm_mon;//代表目前月份,从一月算起,范围从0-11
int tm_year;//从1900 年算起至今的年数
int tm_wday;//一星期的日数,从星期一算起,范围为0-6
int tm_yday;//从今年1月1日算起至今的天数,范围为0-365
int tm_isdst;//夏令时当前是否生效
};
struct tm *localtime(const time_t *clock);
struct tm *gmtime(const time_t *clock);
localtime和gmtime之间的区别是:localtime将日历时间转换成本地时间(考虑到本地时区和夏时制标志),而gmtime则将日历时间转换成国际标准时间的年、月、日、时、分、秒、周日。
4. 函数mktime以本地时间的年、月、日等作为参数,将其转换成time_t值。
time_t mktime(struct tm* tmptr);
5. asctime和ctime函数产生大家熟悉的26字节的字符串,这与date(1)命令的系统默认输出类似,例如:
huangcheng@ubuntu:~$ date
2013年 07月 05日 星期五 18:25:52 CST
char* asctime(const struct tm* tmptr);
char* ctime(const time_t calptr);
asctime的参数是指向年、月、日等字符串的指针,而ctime的参数则是指向日历时间的指针。
最新文章
- 【Mybatis框架】查询缓存(二级缓存)
- 一个Java Dao测试用例
- 未能加载文件或程序集";Microsoft.Web.Infrastructure 的解决方案
- [转]OBOUT ASP.NET HTML Editor - Insert HTML
- linux 相关系列安装
- 验证码 mewebstudio/captcha
- poj----1330Nearest Common Ancestors(简单LCA)
- 如何避免JSP页面自动生成session对象?为什么要这么做?
- kali2 source
- 剑指Offer47 不用加减乘除做加法
- PC 端微信扫码注册和登录
- 移动端利用iscroll实现小图变大图
- C#使用DirectoryEntry操作IIS创建网站和虚拟路径
- 事件详解<;一>;
- crontab的两种配置方式
- CentOS 7 学习(三)配置Tomcat集群
- UNIX网络编程——原始套接字的魔力【续】
- F - Tmutarakan Exams URAL - 1091 -莫比乌斯函数-容斥 or DP计数
- Web安全入门学习
- Qt Widgets——抽象按钮及其继承类