localtime()函数是C语言标准库time.h中定义的一个函数,它的作用是将日历时间转换为本地时间,也就是系统当前时间。使用方法如下:
#includestruct tm *localtime(const time_t *timep);
其中time_t是一个时间类型,它是一个long int类型的数据,表示从1970年1月1日00:00:00UTC(协调世界时)到的秒数,struct tm是一个时间结构体,它用来表示本地时间,其中包括:
- tm_sec:秒,取值范围0-59
- tm_min:分,取值范围0-59
- tm_hour:小时,取值范围0-23
- tm_mday:一个月中的第几天,取值范围1-31
- tm_mon:月份,取值范围0-11
- tm_year:自1900年开始的年数
- tm_wday:星期几,取值范围0-6,0表示星期天
- tm_yday:一年中的第几天,取值范围0-365
- tm_isdst:夏令时标识符,夏令时期间为正,不在夏令时期间为0,不了解情况时为负
localtime()函数的应用场景非常广泛,它可以用来获取系统当前时间,也可以用来计算时间差,还可以用来格式化时间输出,以及实现定时任务等等。例如,我们可以使用localtime()函数来获取系统当前时间:
#include#include int main() { time_t now; struct tm *local; time(&now); local = localtime(&now); printf("当前时间:%d-%d-%d %d:%d:%d\n", local->tm_year + 1900, local->tm_mon + 1, local->tm_mday, local->tm_hour, local->tm_min, local->tm_sec); return 0; }
上面的代码中,我们使用time()函数获取当前系统时间,使用localtime()函数将日历时间转换为本地时间,通过struct tm结构体获取到当前时间的年月日时分秒,最终使用printf()函数格式化输出。
我们可以使用localtime()函数来计算时间差,例如,我们可以计算两个时间之间的秒数:
#include#include int main() { struct tm time1; struct tm time2; time_t t1; time_t t2; time1.tm_year = 2020 - 1900; time1.tm_mon = 2 - 1; time1.tm_mday = 1; time1.tm_hour = 0; time1.tm_min = 0; time1.tm_sec = 0; time2.tm_year = 2020 - 1900; time2.tm_mon = 2 - 1; time2.tm_mday = 2; time2.tm_hour = 0; time2.tm_min = 0; time2.tm_sec = 0; t1 = mktime(&time1); t2 = mktime(&time2); printf("两个时间之间的秒数:%ld\n", t2 - t1); return 0; }
上面的代码中,我们定义了两个struct tm结构体,分别表示2020年2月1日和2020年2月2日,使用mktime()函数将struct tm结构体转换为time_t类型,使用time_t类型的数据计算出两个时间之间的秒数。
localtime()函数在C语言中有着广泛的应用场景,它可以用来获取系统当前时间,也可以用来计算时间差,还可以用来格式化时间输出,以及实现定时任务等等。