time_t:通常為 long,編碼後的日曆時間。struct tm:解碼後的時間分量結構:tm_sec (0-61), tm_min (0-59), tm_hour (0-23), tm_mday (1-31), tm_mon (0-11), tm_year (從1900年起), tm_wday (0-6), tm_yday (0-365), tm_isdst (夏令時標志)time(&timer):獲取當前編碼時間(time_t)。localtime(&timer):將 time_t 解碼為本地時間 struct tm*(返回靜態結構指針,每次調用覆蓋)。ctime(&timer):返回標準格式字符串指針(如 "Tue May 10 14:30:00 2024\n")。strftime(buf, size, format, tm):按用戶格式化輸出。常用格式符:%Y年 %m月 %d日 %H時 %M分 %S秒 %A星期名 %j年內天數等。#include <time.h>
#include <stdio.h>
int main() {
time_t now = time(NULL);
struct tm *local = localtime(&now);
char buf[128];
strftime(buf, sizeof(buf), "Today is %A, %Y-%m-%d %H:%M:%S", local);
puts(buf);
return 0;
}
輸出如:Today is Tuesday, 2024-05-10 14:30:00
localtime 返回靜態結構,多線程環境下需用 localtime_r 或自行拷貝。tm_year 為距 1900 年的偏移,顯示時需 +1900。tm_mon 範圍 0-11,顯示月份需 +1。