【Linux系统获取时间的函数】

这篇博客主要介绍了Linux系统下获取和转换时间的函数,包括time、gettimeofday、ctime、asctime、gmtime和localtime,以及时间的分解与合成。通过示例代码展示了如何使用这些函数获取当前时间、转换为标准格式以及进行时间的分解和合成。
摘要由CSDN通过智能技术生成


前言

在linux系统里面,我们有时候需要获取当前时间,用它来统计程序运行的时间,或者显示标准格式的日期和时间等等。那么怎么获取时间呢?下面就来了解一下。


Linux的API

获取时间

time函数

首先看看它在man 第2册中的介绍:

NAME
       time - get time in seconds

SYNOPSIS
       #include <time.h>

       time_t time(time_t *tloc);

DESCRIPTION
       time() returns the time as the number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).

       If tloc is non-NULL, the return value is also stored in the memory pointed to by tloc.

RETURN VALUE
       On  success, the value of time in seconds since the Epoch is returned.  On error, ((time_t) -1) is returned, and errno is set appro‐priately.

概括一下,如下表:

函数原型 time_t time(time_t *tloc); 备注
要包含的头文件 #include <time.h>
形参 time_t *tloc 指针非空就把时间值放入指针指向的内存;指针为空就忽略
返回值 成功:当前时间(单位为秒)/ 失败:((time_t) -1) 返回的时间是从1970-01-01 00:00:00 +0000 (UTC)开始算起间隔的秒数

再啰嗦一遍: time函数,返回自Epoch以来的秒数,这是肯定的,同时可以接受一个time_t*类型的指针作为形参,执行该函数将会把这个秒数放入到指针所指向的位置 ,如果为NULL当然不用管了;

gettimeofday函数

函数原型:
include <sys/time.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);

第一个参数 是一个结构体:

struct timeval {
time_t tv_sec; /* seconds /
suseconds_t tv_usec; /
microseconds */
};

里面有秒数和微秒数,都是自Epoch以来的秒数。

第二个参数是一个时区结构,已经过时了,所以tz参数通常应该指定为NULL

该函数会把自Epoch以来的秒数和微秒数放到tv结构体。

函数调用成功返回0,失败返回-1,并设置errno。

time函数、gettimeofday函数使用代码

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值