国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁(yè) > 技術(shù) > Linux

linux有獲取時(shí)間的函數(shù)嗎

Linux 2022-09-26 12:06:19

Linux有獲取時(shí)間的函數(shù)。linux常用的時(shí)間函數(shù):1、time()函數(shù),獲取當(dāng)前的時(shí)間;2、“l(fā)ocaltime_r”()和localtime()函數(shù),取得當(dāng)?shù)啬壳皶r(shí)間和日期;3、gettimeofday()函數(shù),也可以獲取當(dāng)前的時(shí)間。

程序員必備接口測(cè)試調(diào)試工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api設(shè)計(jì)、調(diào)試、文檔、自動(dòng)化測(cè)試工具
后端、前端、測(cè)試,同時(shí)在線(xiàn)協(xié)作,內(nèi)容實(shí)時(shí)同步

教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。

linux獲取時(shí)間的函數(shù)

常用的時(shí)間函數(shù)介紹:

  1. time() 函數(shù)獲取當(dāng)前時(shí)間
    #include 
    time_t time(time_t *t);  
    
    /* 此函數(shù)會(huì)返回從公元1970年1月1日的UTC時(shí)間從0時(shí)0分0秒算起到現(xiàn)在所經(jīng)過(guò)的秒數(shù)。
     * 如果t 并非空指針的話(huà),此函數(shù)也會(huì)將返回值存到t指針?biāo)傅膬?nèi)存。
     */

    實(shí)例代碼:

    #include 
    #include 
    #include 
    
    int main()
    {
        time_t sec;
    
        sec = time((time_t *)NULL);
        printf("%dn", (int)sec);
    
        return 0;
    }

    運(yùn)行結(jié)果:

  2. localtime_r() localtime()取得當(dāng)?shù)啬壳皶r(shí)間和日期

    #include 
           
        struct tm *localtime(const time_t *timep);
        struct tm *localtime_r(const time_t *timep, struct tm *result);
            
    /*該函數(shù)將有time函數(shù)獲取的值timep轉(zhuǎn)換真實(shí)世界所使用的時(shí)間日期表示方法,然后將結(jié)果由結(jié)構(gòu)tm返回*/
    
    /**需要注意的是localtime函數(shù)可以將時(shí)間轉(zhuǎn)換本地時(shí)間,但是localtime函數(shù)不是線(xiàn)程安全的。
    多線(xiàn)程應(yīng)用里面,應(yīng)該用localtime_r函數(shù)替代localtime函數(shù),因?yàn)閘ocaltime_r是線(xiàn)程安全的**/

    實(shí)例代碼:

    #include 
    #include 
    #include 
    
    int main()
    {
        time_t tmp;   
        struct tm *timp; 
       
        time(&tmp);   
        timp = localtime(&tmp);
       
        printf("%d-%d-%d %d:%d:%dn", (1900 + timp->tm_year), ( 1 + timp->tm_mon), timp->tm_mday,
                                    (timp->tm_hour), timp->tm_min, timp->tm_sec); 
    
        return 0;
    }

    運(yùn)行結(jié)果:

  3. asctime() asctime_r() 將時(shí)間和日期以字符串格式返回

    #include 
           
        struct tm *gmtime(const time_t *timep);
        struct tm *gmtime_r(const time_t *timep, struct tm *result);
           
        char *asctime(const struct tm *tm);
        char *asctime_r(const struct tm *tm, char *buf);
           
           
    /*
     *gmtime是把日期和時(shí)間轉(zhuǎn)換為格林威治(GMT)時(shí)間的函數(shù)。
     *將參數(shù)time 所指的time_t 結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法,然后將結(jié)果由結(jié)構(gòu)tm返回
     *asctime 將時(shí)間以換為字符串字符串格式返回 
     */

    實(shí)例代碼:

    #include 
    #include 
    #include  
      
    int main() 
    {   
        time_t timp;   
        time(&timp);
       
        printf("%sn", asctime(gmtime(&timp)));   
        
        return 0;
    }

    運(yùn)行結(jié)果:(asctime獲取的字符串自己帶有換行符)

  4. ctime(),ctime_r() 將時(shí)間和日期以字符串格式表示

    #include 
    char *ctime(const time_t *timep);
    char *ctime_r(const time_t *timep, char *buf);
    
    
    /*
     *ctime()將參數(shù)timep所指的time_t結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法,
     *然后將結(jié)果以字符串形態(tài)返回
     */

    實(shí)例代碼:

    #include 
    #include 
    #include    
    
    int main(void)   
    {   
        time_t tmp;
     
        time(&tmp);   
        printf("%sn", ctime(&tmp));
        
        return 0;  
    }

    運(yùn)行結(jié)果:(ctime獲取的字符串自己帶有換行符)

  5. mktime() 將時(shí)間結(jié)構(gòu)體struct tm的值轉(zhuǎn)化為經(jīng)過(guò)的秒數(shù)

     #include 
     time_t mktime(struct tm *tm);
    
    /*
     *將時(shí)間結(jié)構(gòu)體struct tm的值轉(zhuǎn)化為經(jīng)過(guò)的秒數(shù)
     */

    實(shí)例代碼 :

    #include 
    #include 
    #include   
     
    int main()   
    {   
        time_t tmp;   
        struct tm *timp;   
    
        time(&tmp);   
        timp = localtime(&tmp);   
        tmp = mktime(timp);
       
        printf("%dn", (int)tmp);   
        
        return 0;
    }

    運(yùn)行結(jié)果:

  6. gettimeofday() 獲取當(dāng)前時(shí)間

    #include 
    
    int gettimeofday(struct timeval *tv, struct timezone *tz);
        
    struct timeval {
        time_t      tv_sec;     /* seconds (秒)*/
        suseconds_t tv_usec;    /* microseconds(微秒) */
        };
    struct timezone {
        int tz_minuteswest;     /* minutes west of Greenwich */
        int tz_dsttime;         /* type of DST correction */
        };
    /*
     *gettimeofday函數(shù)獲取當(dāng)前時(shí)間存于tv結(jié)構(gòu)體中,相應(yīng)的時(shí)區(qū)信息則存于tz結(jié)構(gòu)體中
     *需要注意的是tz是依賴(lài)于系統(tǒng),不同的系統(tǒng)可能存在獲取不到的可能,因此通常設(shè)置為NULL
     */

    實(shí)例代碼:

    #include 
    #include 
    #include 
    
    int main()
    {
        struct timeval tv; 
        
        gettimeofday(&tv, NULL);
    
        printf("tv_sec = %dn", (int)tv.tv_sec);
        printf("tv_usec = %dn", (int)tv.tv_usec);
        
        return 0;
    }

    運(yùn)行結(jié)果:

推薦學(xué)習(xí):Linux視頻教程

以上就是linux有獲取時(shí)間的函數(shù)嗎的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注其它相關(guān)文章!

TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標(biāo)保護(hù),版權(quán)登記號(hào):國(guó)作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴(yán)禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來(lái)源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請(qǐng)注明來(lái)源,商業(yè)媒體及紙媒請(qǐng)先聯(lián)系:aishangyiwan@126.com

工信部備案號(hào):湘ICP備19012813號(hào)-5