C语言获取当前时间
在C语言中,你可以使用标准库
#include
#include
int main() {
// 获取当前时间(从1970年1月1日至今的秒数)
time_t rawtime;
time(&rawtime);
// 将时间转换为本地时间
struct tm *timeinfo;
timeinfo = localtime(&rawtime);
// 打印原始时间(秒数)
printf("当前时间的秒数(从1970年1月1日起): %ld\n", rawtime);
// 打印格式化后的时间
printf("当前本地时间: %s", asctime(timeinfo));
// 使用 strftime 自定义时间格式
char buffer[80];
strftime(buffer, sizeof(buffer), "自定义格式: %Y-%m-%d %H:%M:%S", timeinfo);
printf("%s\n", buffer);
return 0;
}
当前时间的秒数(从1970年1月1日起): 1697049600
当前本地时间: Mon Oct 10 15:20:00 2023
自定义格式: 2023-10-10 15:20:00
代码说明:
time_t 和 time():
time_t 是一个数据类型,通常用于存储从1970年1月1日(Unix纪元)至今的秒数。
time(&rawtime) 函数获取当前时间,并将其存储在 rawtime 中。
struct tm 和 localtime():
struct tm 是一个结构体,用于存储时间的各个部分(年、月、日、时、分、秒等)。
localtime(&rawtime) 将 time_t 类型的时间转换为本地时间,并返回一个指向 struct tm 的指针。
asctime():
asctime(timeinfo) 将 struct tm 结构体转换为一个可读的字符串格式(例如:Mon Oct 10 15:20:00 2023)。
strftime():
strftime() 是一个强大的函数,允许你自定义时间的输出格式。
例如:%Y 表示年份,%m 表示月份,%d 表示日期,%H 表示小时,%M 表示分钟,%S 表示秒。
常用的 strftime 格式化符号:
符号 说明
%Y 年份(4位数,如2023)
%m 月份(01到12)
%d 日期(01到31)
%H 小时(24小时制,00到23)
%M 分钟(00到59)
%S 秒数(00到59)
%A 星期几(全称,如Monday)
%a 星期几(缩写,如Mon)
%B 月份(全称,如October)
%b 月份(缩写,如Oct)
注意事项:
time() 返回的时间是基于系统时钟的,因此它依赖于系统的时区设置。
如果需要处理时区或更复杂的时间操作,可以使用 gmtime()(返回UTC时间)或其他库(如