📅  最后修改于: 2023-12-03 15:13:46.035000             🧑  作者: Mango
本文将介绍C语言获取当前时间的方法。
在C语言中可以使用time函数获取当前时间戳,即从1970年1月1日0时0分0秒至当前时间所经过的秒数。其函数原型如下:
time_t time(time_t *t);
其中,参数t是一个指向time_t类型的指针,可以为空。如果t不为空,则会把当前时间戳赋值给t所指向的变量。如果t为空,则直接返回当前时间戳。
下面是一个完整的示例程序:
#include <stdio.h>
#include <time.h>
int main()
{
time_t timestamp = time(NULL);
printf("%ld\n", timestamp);
return 0;
}
运行结果如下:
1607875881
在C语言中可以使用ctime函数将时间戳转换成可读性更好的字符串格式。其函数原型如下:
char *ctime(const time_t *timep);
其中,参数timep是一个指向time_t类型的指针,表示要转换的时间戳。
下面是一个完整的示例程序:
#include <stdio.h>
#include <time.h>
int main()
{
time_t timestamp = time(NULL);
char *timestr = ctime(×tamp);
printf("%s", timestr);
return 0;
}
运行结果如下:
Sun Dec 13 08:11:21 2020
在C语言中也可以使用结构体tm存储和操作时间。该结构体的定义如下:
struct tm {
int tm_sec; // 秒 [0, 60]
int tm_min; // 分 [0, 59]
int tm_hour; // 时 [0, 23]
int tm_mday; // 日 [1, 31]
int tm_mon; // 月 [0, 11]
int tm_year; // 年 [1900, ]
int tm_wday; // 星期 [0, 6],0表示周日
int tm_yday; // 一年中的第几天 [0, 365]
int tm_isdst; // 是否为夏令时 [0, 1],正常时间为0,夏令时为1
};
在C语言中可以通过调用如下函数获取当前的系统时间:
struct tm *localtime(const time_t *timep);
其中,timep表示需要转换的时间戳。该函数返回一个指向tm结构体的指针,即本地时间。
下面是一个完整示例程序:
#include <stdio.h>
#include <time.h>
int main()
{
time_t timestamp = time(NULL);
struct tm *tm_info = localtime(×tamp);
char buffer[26];
strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", tm_info);
printf("%s\n", buffer);
return 0;
}
运行结果如下:
2020-12-13 08:11:21
本文介绍了C语言获取当前时间的三种方法,分别是time函数、ctime函数和结构体tm。如果需要操作时间,建议使用结构体tm来进行,因为其可以更方便地进行年月日时分秒的操作。