用c语言如何获取系统当前时间的函数?

用c语言如何获取系统当前时间的函数?,第1张

1、C语言中读取系统时间函数为time(),其函数原型为:\x0d\x0a#include \x0d\x0atime_t time( time_t * ) \x0d\x0atime_t就是long,函数返回从1970年1月1日(MFC是1899年12月脊派31日)0时0分0秒,到现在的的秒数。\x0d\x0a2、C语言还提供了将秒数转换成相应的时间格式的函数:搭知\x0d\x0achar * ctime(const time_t *timer)//将日历时间转换成本地时间,返回转换后的字符串指针 可定义字符串或是字符指针来接收返回值\x0d\x0astruct tm * gmtime(const time_t *timer)//将日历时间转化为世界标准时间(即格林尼治时间),返回结构体指针 可定义struct tm *变量来接收结果\x0d\x0astruct tm * localtime(const time_t * timer) //将日历时间转化为本地时间,返回结构体指针 可定义struct tm *变量来接收结果\x0d\x0a3、例程:\x0d\x0a#include \x0d\x0avoid main()\x0d\x0a{\x0d\x0atime_t t\x0d\x0astruct tm *pt \x0d\x0achar *pc \x0d\x0atime(&t)\x0d\x0apc=ctime(&t) printf("ctime:%s", pc )\x0d\x0apt=localtime(&t) printf("year=%d", pt->tm_year+1900 )\x0d\x0a}\x0d\x0a\x0d\x0a时间结构体struct tm 说明:\x0d\x0a\x0d\x0astruct tm { \x0d\x0aint tm_sec/* 秒 _ 取值区间为[0,59] */ \x0d\x0aint tm_min/* 分 - 取值区间为[0,59] */ \x0d\x0aint tm_hour/* 时 - 取值区间为[0,23] */ \x0d\x0aint tm_mday/* 一个月中的日期 - 取值区间为[1,31] */ \x0d\x0aint tm_mon/* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */ \x0d\x0aint tm_year/* 年份,其值等知野消于实际年份减去1900 */ \x0d\x0aint tm_wday/* 星期 _ 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */ \x0d\x0aint tm_yday/* 从每年的1月1日开始的天数 _ 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */ \x0d\x0aint tm_isdst/* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/ \x0d\x0a}

程序主要通过当前系统日历的struct tm结构体获得,主要代码如下,\x0d\x0a#include \x0d\x0a#include \x0d\x0a//程序功能输出当前时间在24H下的小时数 \x0d\x0aint main(int argc, char *argv[])\x0d\x0a{\x0d\x0astruct tm *ptr\x0d\x0atime_t lt\x0d\x0atime(&lt)//空蔽当前系统时间 \x0d\x0aptr=localtime(&lt)//获取本地日历时间指针 \x0d\x0aprintf("hour=%d(24H )\n",ptr->tm_hour)//输出24H下的小时数 \x0d\x0areturn 0\x0d\x0a}\x0d\x0a\x0d\x0a结构体tm定义如下,\x0d\x0astruct tm {\x0d\x0aint tm_sec/* 秒_取值区间为[0,59] */\x0d\x0aint tm_min/* 分 - 取值区间为[0,59] */\x0d\x0aint tm_hour/* 时 - 取值区间为[0,23] */\x0d\x0aint tm_mday/* 一个月中的日期 - 取值区间为[1,31] */\x0d\x0aint tm_mon/* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */\x0d\x0aint tm_year/* 年份,其值从1900开始 */\x0d\x0aint tm_wday/* 星期_取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */\x0d\x0aint tm_yday/* 从每年的1月1日开始的天数_取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */\x0d\x0aint tm_isdst/* 夏令时标识坦亏陆符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/\x0d\x0along int tm_gmtoff/*指定了日期变更让顷线东面时区中UTC东部时区正秒数或UTC西部时区的负秒数*/\x0d\x0aconst char *tm_zone/*当前时区的名字(与环境变量TZ有关)*/\x0d\x0a}

需要利用C语言的时间函数time和localtime,具体说明如下:

一、函数接口介绍:

1、time函数。

形式为time_t time (time_t *__timer)

其中time_t为time.h定义的结构体,一般为长整型。

这个函数会获取当前时间,并返回。 如果参数__timer非空,会存储相同值到__timer指向的内存中。

time函数返回的为unix时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的者物纳秒数,不考首没虑闰秒。

由于是秒作为单位的,所以这并不是习惯上的时间,要转为习惯上的年月日时间形式就需要另外一个函数了。

2、localtime函数。

形式为struct tm *localtime (const time_t *__timer);

其中tm为一个结构体,包含了年月日时分秒等信息。

这种结构是适合用来输出蚂源的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12542786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存