C语言日期时间函数

C语言 gettimeofday()函数用于获取当前时间戳的秒和微秒。它是C语言的日期时间函数之一,位于标准库<time.h>中。

还可以通过time()函数获取时间戳,只是gettimeofday()函数可以获取到微妙级的时间戳,相对来说更为精准。

语法

语法如下:
int gettimeofday (struct timeval * tv, struct timezone * tz);

参数

  • tv:timeval 结构体。
  • tz:timezone结构体

timeval结构体:

struct timeval
{
    long int tv_sec;     // 秒数
    long int tv_usec;     // 微秒数
}

timezone结构体:

struct timezone
{
    int tz_minuteswest;/*格林威治时间往西方的时差*/
    int tz_dsttime;    /*DST 时间的修正方式*/
}
tz_dstime值如下:
  • DST_NONE /*不使用*/
  • DST_USA /*美国*/
  • DST_AUST /*澳洲*/
  • DST_WET /*西欧*/
  • DST_MET /*中欧*/
  • DST_EET /*东欧*/
  • DST_CAN /*加拿大*/
  • DST_GB /*大不列颠*/
  • DST_RUM /*罗马尼亚*/
  • DST_TUR /*土耳其*/
  • DST_AUSTALT /*澳洲(1986年以后)*/

功能

获取当前时间戳的秒和微妙,给结构体 timeval赋值,我们可以从该结构体中获取秒和微妙

返回值

成功则返回0,失败返回-1,错误代码存于errno。

程序示例

介绍一个例子,了解C语言 gettimeofday()函数的使用方法。

#include <stdio.h> 
#include <sys/time.h> 
#include <time.h>

int main() 
{ 
	struct timeval tv;
	gettimeofday(&tv, NULL);//使用gettimeofday给tv赋值
	printf("时间戳秒:%ld\n时间戳微秒:%ld", tv.tv_sec, tv.tv_usec);
    	
	return 0;
}

程序运行结果:

时间戳秒:1685708769
时间戳微秒:93980
注意:上面的代码要在linux系统中运行。