溫馨提示×

C語言time()函數(shù)與日期時(shí)間的關(guān)系

小樊
87
2024-09-11 23:11:08
欄目: 編程語言

time() 是 C 語言中的一個(gè)函數(shù),它用于獲取當(dāng)前日幾時(shí)間的秒數(shù)。這個(gè)函數(shù)返回的是從 1970 年 1 月 1 日 00:00:00(UTC)到現(xiàn)在所經(jīng)過的秒數(shù)。這個(gè)值通常被稱為 “Unix 時(shí)間戳”。

time() 函數(shù)的原型如下:

#include <time.h>
time_t time(time_t* timer);

time() 函數(shù)接受一個(gè)指向 time_t 類型的指針作為參數(shù)。如果傳入的是 NULL,那么函數(shù)將返回當(dāng)前的 Unix 時(shí)間戳;否則,它會將當(dāng)前的 Unix 時(shí)間戳存儲在指針?biāo)赶虻淖兞恐校⒎祷卦撝怠?/p>

下面是一個(gè)使用 time() 函數(shù)的簡單示例:

#include<stdio.h>
#include <time.h>

int main() {
    time_t currentTime;
    currentTime = time(NULL);

    printf("當(dāng)前的 Unix 時(shí)間戳是:%ld\n", (long)currentTime);
    return 0;
}

要將 Unix 時(shí)間戳轉(zhuǎn)換為可讀的日期和時(shí)間格式,可以使用 localtime()gmtime() 函數(shù)將其轉(zhuǎn)換為 struct tm 結(jié)構(gòu)體,然后使用 strftime() 函數(shù)將其格式化為字符串。下面是一個(gè)示例:

#include<stdio.h>
#include <time.h>

int main() {
    time_t currentTime;
    struct tm *localTime;

    currentTime = time(NULL);
    localTime = localtime(&currentTime);

    char formattedTime[26];
    strftime(formattedTime, sizeof(formattedTime), "%Y-%m-%d %H:%M:%S", localTime);

    printf("當(dāng)前的日期和時(shí)間是:%s\n", formattedTime);
    return 0;
}

這個(gè)示例將輸出類似于 “2022-01-01 12:34:56” 的日期和時(shí)間。

0