当前位置:网站首页 > 技术博客 > 正文

c语言中时间



gettimeofday是函数,其头文件和声明如下

#include <sys/time.h>

int gettimeofday(structtimeval*tv, struct timezone *tz);

其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果timezone 参数若不使用则传入NULL即可。

 

下面是timeval和timezone的结构体说明:

struct timezone{

int tz_minuteswest;/*格林威治时间往西方的时差*/

int tz_dsttime;/*DST 时间的修正方式*/

}

而结构体timeval的定义为:

struct timeval{

long int tv_sec; // 秒数

long int tv_usec; // 微秒数

}

其实gettimeofday()函数是用来获取时间的,而上面的两个结构体是通过gettimeofday函数获取秒和微秒的

例如1:不需要时区的

 
  

运行的结果是:获取的秒时间 =   获取的微秒时间 =

在了解第二个参数时首先要知道时区的意思。

int tz_minuteswest;//与格林尼治时间差,我们为东八区,即北京时间比该时间早八个小时,即当我们的时间是早上八点的时候,格林尼治时间(即世界时)为0点。与格林时间的差为-8小时(个人认为是因为选择编译器或者操作操作系统时选择的是北京时间,所以格林尼治时间相对于北京时间为-8小时,个人猜测,有待考证)。

int tz_dsttime;//DST 时间的修正方式

tz_dsttime 所代表的状态如下

DST_NONE /*不使用*/

DST_USA /*美国*/

DST_AUST /*澳洲*/

DST_WET /*西欧*/

DST_MET /*中欧*/

DST_EET /*东欧*/

DST_CAN /*加拿大*/

DST_GB /*大不列颠*/

DST_RUM /*罗马尼亚*/

DST_TUR /*土耳其*/

DST_AUSTALT /*澳洲(1986年以后)*/

返回值  成功则返回0,失败返回-1,错误代码存于errno。附加说明EFAULT指针tv和tz所指的内存空间超出存取权限。

举例2:有时区的

 
  
 
  

获取的秒时间 =   获取的微秒时间 =

与格林尼治的时差 = -480  DST矫正时差 =0

格林尼治相对于北京时间 time =-8

版权声明


相关文章:

  • c盘servyou文件夹可以删除吗2025-08-22 10:30:02
  • 径向基核函数参数2025-08-22 10:30:02
  • webshell2025-08-22 10:30:02
  • 反编译 c2025-08-22 10:30:02
  • laya教程2025-08-22 10:30:02
  • xml文件注释掉多行2025-08-22 10:30:02
  • winpcap抓包软件编程2025-08-22 10:30:02
  • shellcode加密2025-08-22 10:30:02
  • 图像滤波是什么意思2025-08-22 10:30:02
  • mysql触发器 sql2025-08-22 10:30:02