C语言获取系统时间及time.h函数使用指南

365bet体育投注网站 📅 2026-06-12 06:05:09 👤 admin 👁️ 9968 ❤️ 16
C语言获取系统时间及time.h函数使用指南

C语言获取系统日期及时间(time.h的应用)

以下内容基于C/C++语言参考手册的整理与补充

系统时间的获取

time()函数

在头文件time.h中

time_t time( time_t *time );//返回值为time_t 类型

函数返回当前时间(sec),从1970年1月1日至此时经历的秒数。如果发生错误返回零。如果给定参数time ,那么当前时间存储到参数time中。

通过time()函数来获得计算机系统当前的日历时间,在该函数的基础上进行日期与时间的处理。

time()函数返回值的处理

localtime() 函数的使用

//原型

struct tm *localtime( const time_t *time );

int main(){

time_t now;

struct tm *time_now;

time(&now);//等价于now=time(NULL)

time_now=localtime(now);

}

函数返回struct tm结构体指针

该结构体定义在time.h中 具体如下

struct tm {

int tm_sec;//秒[0,59]

int tm_min;//分 - 取值区间为[0,59]

int tm_hour;// 时 - 取值区间为[0,23]

int tm_mday;//一个月中的日期 - 取值区间为[1,31]

int tm_mon;//月份(从一月开始,0代表一月)[0,11]

int tm_year;//年,其值等于实际年份减去1900

int tm_wday;//星期[0,6],其中0代表星期天,1代表星期一

int tm_yday;//从每年1月1日开始的天数,[0,365],0表示1月1日

int tm_isdst;//夏令时标识符,不实行夏令时tm_isdst为0

};

逆函数mktime(struct tm *ptime)功能相反,将结构体time转换为秒,发生错误返回-1。

2.strftime()函数的使用

size_t strftime( char *str, size_t maxsize, const char *fmt, struct tm *time );

函数按照参数fmt所设定格式将time类型的参数格式化为日期时间信息,然后存储在字符串str中(至多maxsize 个字符)。

格式控制字符串fmt如下表所示://0表示周日,周日是一周的开始

格式控制

含义

格式控制

含义

%a

星期的缩略形式

%M

分钟[0-59]

%A

星期的完整形式

%p

AM or PM

%b

月份的缩略形式

%S

秒钟[0-59]

%B

月份的完整形式

%w

星期几的数字表示[0-6]

%c

月份的缩略形式

%W

一年中的第几周

%d

月中的第几天(1-31)

%x

标准日期字符串

%H

小时, 24小时格式 (0-23)

%X

标准时间字符串

%I

小时, 12小时格式 (1-12)

%y

年[0-99]

%j

一年中的第几天(1-366)

%Y

用CCYY表示的年(如:2004)

%m

月份 (1-12)

%Z

时区名

3. gmtime ()函数

同localtime()函数,短时返回给定的统一世界时间(通常是格林威治时间),如果系统不支持统一世界时间系统返回NULL。

4.difftime()函数

double difftime( time_t time2, time_t time1 );

返回时间参数time2和time1之差(sec)。

5.ctime() 函数

char *ctime( const time_t *time );

等同于asctime( localtime( tp ) )

函数转换参数time为本地时间格式:

day month date hours:minutes:seconds year\n\0

6.asctime()

char *asctime( const struct tm *ptr );

函数将ptr所指向的时间结构体转换成下列字符串:

day month date hours:minutes:seconds year\n\0

最有用的来了

clock()函数

clock_t clock( void );

函数返回自程序开始运行的处理器时间,如果无可用信息,返回-1。 转换返回值以秒记, 返回值除以CLOCKS_PER_SECOND. (注: 如果编译器是POSIX兼容的, CLOCKS_PER_SECOND定义为1000000.)

相关推荐

qq签名如何删除历史记录
365bet体育投注网站

qq签名如何删除历史记录

📅 10-19 👁️ 9952
Score90解密2025世俱杯B组晋级概率分析
365app官网下载

Score90解密2025世俱杯B组晋级概率分析

📅 10-05 👁️ 9511