提前認識軟體開發(11) localtime與GetLocalTime

來源:互聯網
上載者:User

在C語言中,有兩個擷取目前時間的函數:localtime和GetLocalTime。它們在諸如對賬一類的程式中應用很廣。

本文對localtime和GetLocalTime進行較為詳細的介紹,並舉例說明它們的用法。

1.前言

在C語言中,擷取當前系統時間的操作時有發生。例如,在對賬程式中,需要在對賬檔案名稱中加入當天的日期及時間。一般而言,經常使用的擷取目前時間的函數有兩個:localtime和GetLocalTime。

本文分別介紹了localtime和GetLocalTime函數,並舉例說明了它們的用法。

2. localtime和GetLocalTime函數介紹

2.1 localtime函數介紹

功能:把從1970-1-1零點零分(程式中是從1900年開始算的)到目前時間系統所位移的秒數時間轉換為日曆時間。

說明:此函數獲得的tm結構體的時間,已經進行過時區轉化,成為了本地時間。

用法:struct tm *localtime(const time_t *clock)。

傳回值:返回指向tm結構體的指標。

tm結構體是time.h中定義的用於分別儲存時間的各個量(年月日等)的結構體,其定義如下:

#ifndef _TM_DEFINED    struct tm    {          int tm_sec; /*秒–取值區間為[0,59] */          int tm_min; /*分 -取值區間為[0,59] */          int tm_hour; /*時 -取值區間為[0,23] */          int tm_mday; /*一個月中的日期 -取值區間為[1,31] */          int tm_mon; /*月份(從一月開始,0代表一月) -取值區間為[0,11] */          int tm_year; /*年份,其值從1900開始 */          int tm_wday; /*星期–取值區間為[0,6],其中0代表星期天,1代表星期一,等等 */          int tm_yday; /*從每年的1月1日開始的天數–取值區間為[0,365],其中0代表1月1日,1代表1月2日,以此類推 */          int tm_isdst; /*夏令時標識符,實行夏令時的時候,tm_isdst為正;不實行夏令時的進候,tm_isdst為0;不瞭解情況時,tm_isdst()為負 */          long int tm_gmtoff; /*指定了日期變更線東面時區中UTC東部時區正秒數或UTC西部時區的負秒數*/          const char *tm_zone; /*當前時區的名字(與環境變數TZ有關)*/    };    #define _TM_DEFINED    #endif

2.2 GetLocalTime函數介紹

函數功能:該函數用來擷取當地的當前系統日期和時間。

函數原型:void GetLocalTime(LPSYSTEMTIME lpSystemTime  // address of system times structure);

參數說明:

lpSystemTime:指向一個使用者自訂包含日期和時間資訊的類型為SYSTEMTIME的變數,該變數用來儲存函數擷取的時間資訊。

SYSTEMTIME結構體的定義如下:

typedef struct _SYSTEMTIME    {          WORD wYear;   //年          WORD wMonth;  //月          WORD wDayOfWeek;  //星期,0為星期日,1為星期一,2為星期二……          WORD wDay;         //日          WORD wHour;        //時          WORD wMinute;      //分          WORD wSecond;      //秒          WORD wMilliseconds;  //毫秒    }SYSTEMTIME,*PSYSTEMTIME;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.