05-Linux时间编程
来源:互联网 发布:java异或运算有什么用 编辑:程序博客网 时间:2024/05/20 15:41
- 一时间有三种
- 二unix高级环境编程的函数
一、时间有三种:
- 日历时间:
- 日历时间(Calendar Time)是用”一个标准时间点(如1970年1月1日0点)到此时经过的秒数”来表示的时间。
- 格林威治时间:
- Coordinated Universal Time(UTC)是世界标准时间,即常说的格林威治标准时间(Greenwich Mean Time,GMT)。
- 【tip】:还记得本初子午线吗,没错就是这个时间。
注:格林威治时间和本地时间不同
- 本地时间:
- 根据时区的不同,在格林威治的时间上加减时区即可。例如:中国是东八区8点,格林威治的时间就是0点。
二、unix高级环境编程的函数
1、time函数(日历时间): 函数原型time_t time(time_t *t) ;功能time_t记录自1970年1月1日凌晨以来的秒数,在Linux/Unix上定义为long int类型,在32位系统上,time_t最多只能记录2,147,483,647秒,也就是说到了2038年将会产生溢出,但在64位系统上不会出现此问题。头文件#include 《time.h》参数t:如果不为空,保存返回值;如果为空,也可以。返回值成功:返回日历时间;失败:返回-1;
#include <time.h>void main(){ int seconds=0; seconds = time((time_t *)NULL); printf("seconds=%d\n",seconds);}
2、gmtime函数 函数原型struct tm *gmtime(const time_t *timep)功能将日历时间timep转化为格林威治标准时间,并保存在tm结构头文件#include 《time.h》参数timep:待转化的日历时间;返回值成功:返回时间标准时间,保存在tm结构中;失败:返回NULL;
struct tm { int tm_sec; /* seconds */ int tm_min; /* minutes */ int tm_hour; /* hours */ int tm_mday; /* day of the month */ int tm_mon; /* month */ int tm_year; /* year */ int tm_wday; /* day of the week */ int tm_yday; /* day in the year */ int tm_isdst; /* daylight saving time */ };
#include <time.h>#include <stdio.h>int main(void){ struct tm *local; time_t t; t = time(NULL); //获取日历时间 local = localtime(&t); //将日历时间转化为本地时间,并保存在struct tm结构中 printf("local hour is :%d\n",local->tm_hour); local = gmtime(&t); //将日历时间转化为格林威治时间,并保存在struct tm结构中 printf("UTC hour is :%d\n",local->tm_hour); return 0;}
3、localtime函数 函数原型struct tm* localtime(const time_t *timep)功能将日历时间转化为本地时间,并保存至tm结构头文件#include 《time.h》参数待转化的日历时间返回值成功:返回本地时间,存储在tm结构中;失败:返回NULL ;
struct tm { int tm_sec; /* seconds */ int tm_min; /* minutes */ int tm_hour; /* hours */ int tm_mday; /* day of the month */ int tm_mon; /* month */ int tm_year; /* year */ int tm_wday; /* day of the week */ int tm_yday; /* day in the year */ int tm_isdst; /* daylight saving time */ };
#include #include int main(void){ struct tm *local; time_t t; t = time(NULL); //获取日历时间 local = localtime(&t); //将日历时间转化为本地时间,并保存在struct tm结构中 printf("local hour is :%d\n",local->tm_hour); local = gmtime(&t); //将日历时间转化为格林威治时间,并保存在struct tm结构中 printf("UTC hour is :%d\n",local->tm_hour); return 0;}
4、asctime函数( 字符串(格式化)时间 ): 函数原型char *asctime(const struct tm *tm);功能asctime()将参数timeptr 所指的tm 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。头文件#include 《time.h》参数待转化的日历时间;返回值成功:字符串显示的时间;失败:返回NULL;
#include <time.h>main(){ time_t timep; time (&timep); printf("%s", asctime(gmtime(&timep)));}
- 5、gettimeofday函数(高精度时间-微秒):函数原型int gettimeofday(struct timeval*tv,struct timezone *tz ) ;功能gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中。头文件#include 《sys\time.h》参数1、记录了1970年1月1日凌晨以来的秒数和微秒数,放在结构体timeval中:struct timeval{ long tv_sec;/*秒*/ long tv_usec;/*微妙*/};
2、timezone 结构定义为:struct timezone{ int tz_minuteswest;/*和greenwich 时间差了多少分钟*/ int tz_dsttime;/*type of DST correction*/};
3、在gettimeofday()函数中tv或者tz都可以为空。如果为空则就不返回其对应的结构体。
返回值成功:返回0;失败:返回-1;错误代码存于errno中。说明:在使用gettimeofday()函数时,第二个参数一般都为空,因为我们一般都只是为了获得当前时间,而不用获得timezone的数值。
#include<stdio.h>#include<sys/time.h>#include<unistd.h>int main(){ struct timeval tv; struct timezone tz; gettimeofday(&tv,&tz); printf(“tv_sec:%d\n”,tv.tv_sec); printf(“tv_usec:%d\n”,tv.tv_usec); printf(“tz_minuteswest:%d\n”,tz.tz_minuteswest); printf(“tz_dsttime:%d\n”,tz.tz_dsttime);}
0 0
- 05-Linux时间编程
- linux下时间编程
- linux历程--时间编程
- Linux时间编程
- Linux应用 - 时间编程
- linux 时间编程
- linux时间编程
- linux时间编程
- Linux时间编程
- Study Linux - 时间编程
- Linux时间编程
- linux下时间编程
- linux时间编程
- Linux时间编程
- Linux编程---时间相关
- Linux时间编程
- linux时间编程
- Linux下时间编程
- 原生JS中DOM节点相关API合集
- swagger api一键导入postman
- java将整数转成带千分号的字符串
- PHP中超全局变量$GLOBALS和global的区别
- 【OSGi】OSGi类加载流程
- 05-Linux时间编程
- 数据结构学习笔记(1)
- 单表评论设计
- 剑指offer-面试题04-替换空格
- 抽象类和接口的区别
- iOS MBProgressHUD使用
- OpenWrt+Linkit Smart 7688:在openwrt上用opkg安装本地ipk软件包
- Linux内存模式中的内零头和外零头
- sdoi2017 r1 不堪回首