Linux中存在三種形式的時間:
日曆時間:
指的是從1970年1月1日0時0分0秒開始到目前時間點所經歷的秒數
本地時間:
當地時間,北京時間
格林威治時間:
世界標準時間
第一個函數:獲取日曆時間,time();
函數頭文件:
#include <time.h>
函數格式:
time_t time(time_t c);
返回值:
time_t:以秒的格式返回當前時間到1970年1月1日0時0分0秒中間過了多少秒;
參數:一般填NULL,如果是一個指針,則表示返回值存儲在對應的空間中;
第二個函數:獲取指定的時間
1,struct tm *gmtime(const time_t *timep);
2,struct tm *localtime(const time_t *timep);
從名字可以看出來,一個是獲取格林尼治時間,一個是獲取本地時間;參數都是傳time_t類型的指針,所以第一個函數可以說是時間操作的基礎函數了;兩個函數的返回值是一個結構體指針;該結構體的內容如下:
struct tm {
int tm_sec; /* 秒 (0-60) */
int tm_min; /* 分 (0-59) */
int tm_hour; /* 時 (0-23) */
int tm_mday; /* 每月幾號 (1-31) */
int tm_mon; /* 月份 (0-11) */
int tm_year; /*到1900年共有多少年 */
int tm_wday; /* 周幾 (0-6, Sunday = 0) */
int tm_yday; /* 一年中的第幾天 (0-365, 1 Jan = 0) */
int tm_isdst; /* 夏令時間 */
};
第三個函數:獲取字元串時間
char *asctime(const struct tm *tm);
該函數的作用是以字元串的形式返回時間,它的參數時第二個函數的返回值類型的指針;
第四個函數:獲取指定格式時間
size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);
函數的參數:
char *s, size_t max:前兩個參數定義一個保存獲取到時間的字元串數組,
一個是該數組指針,一個是保存到數組的最大位元組數;
const char *format:時間保存的格式:
%a 縮寫的星期幾名稱 Sun
%A 完整的星期幾名稱 Sunday
%b 縮寫的月份名稱 Mar
%B 完整的月份名稱 March
%c 日期和時間表示法 Sun Aug 19 02:56:02 2012
%d 一月中的第幾天(01-31) 19
%H 24 小時格式的小時(00-23) 14
%I 12 小時格式的小時(01-12) 05
%j 一年中的第幾天(001-366) 231
%m 十進位數表示的月份(01-12) 08
%M 分(00-59) 55
%p AM 或 PM 名稱 PM
%S 秒(00-61) 02
%U 一年中的第幾周,以第一個星期日作為第一周的第一天(00-53) 33
%w 十進位數表示的星期幾,星期日表示為 0(0-6) 4
%W 一年中的第幾周,以第一個星期一作為第一周的第一天(00-53) 34
%x 日期表示法 08/19/12
%X 時間表示法 02:50:06
%y 年份,最後兩個數字(00-99) 01
%Y 年份 2012
%Z 時區的名稱或縮寫 CDT
%% 一個 % 符號 %
const struct tm *tm:第二個參數的返回值結構體指針
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233026.html