c&c++ datetime
阿新 • • 發佈:2018-01-09
img ali 復制 根據 1.2 time_t 制表符 分析 mat 時間函數之間的關系
關於%U參數:
比如2017年的1月1日是星期日,使用%U得到的值是“01”
比如2016年的1月1日是星期五,使用%U得到的值是“00”
關於%V參數:
比如2017年的1月1日是星期日,使用%V得到的值是“52”
比如2017年的1月1日是星期一,使用%V得到的值是“01”
比如2016年的1月1日是星期五,使用%V得到的值是“53”
更新記錄1.20170720 更新時間函數關系圖;
struct tm { int tm_sec; // 代表目前秒數,正常範圍0-59,但允許至61秒; int tm_min; // 代表目前分數,範圍為0-59。 int tm_hour; // 從午夜算起的小時數,範圍為0-23。 int tm_mday; // 目前月份的日數,範圍為1-31。 int tm_mon; // 代表目前月份,從一月算起,範圍為0-11。 int tm_year; // 從1900年算起至今的年數。比如(時間戳1970-01-02 10:23:09,該值為70)。 int tm_wday; // 一星期中的日數,從星期日算起,範圍為0-6。 int tm_yday; // 從1月1日算起至今的天數,範圍為:0-365。 int tm_isdst; // 日光節約時間的旗標。 };
#include <time.h> time_t time(time_t * t); 此函數會返回從公元1970年1月1日的UTC時間從0時0分0秒算起到現在所經過的秒數。如果t並非空指針的話,此函數也會將返回值存到t指針所指的內存。如果失敗則返回((time_t)-1)。 #include <time.h> struct tm * gmtime(const time_t * timep); 該函數將參數timep所指的time_t結構中的信息轉換成真實世界所使用的日期表示方法,然後將結果由結構tm返回。該返回值代表目前的UTC時間。 #include <time.h> struct tm * localtime(const time_t * timep);strftime和strptime的格式參數該函數將參數timep所指的time_t結構中的信息轉換成真實世界所使用的日期表示方法,然後將結果由結構tm返回。該返回值代表目前的當地時區的當地時間。 #include <time.h> time_t mktime(struct tm * timeptr); 該函數將參數timeptr所指的tm結構數據轉換成從公元1970年1月1日0時0分0秒算起的至今的UTC時間所經過的秒數。 #include <time.h> size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);該函數將參數tm,依照參數format所指定的字符串格式做轉換,轉換後的字符串復制到參數s所指的字符串數組中,該字符串的最大長度為參數max所控制。 #include <time.h> char *strptime(const char *s, const char *format, struct tm *tm); 該函數將參數s所指定的按一定格式要求編制的字符串,根據格式化參數format,轉換成tm結構的值。如果分析錯誤,返回NULL。
參數 | 含義 |
%a | 星期幾的簡寫 |
%A | 星期幾的全稱 |
%A | 星期幾的全稱 |
%b | 月分的簡寫 |
%B | 月份的全稱 |
%c | 標準的日期的時間串 |
%C | 年份的前兩位數字,比如1997年表示為:19 |
%d | 十進制表示的每月的第幾天,表示法為:01-31 |
%D | 格式為“月/天/年”表示時間。相當於“%m%d%y”格式。例如“19970701” |
%e | 十進制表示的每月的第幾天(不補0),表示法為:1-31。 |
%F | 使用“%Y-%m-%d”格式表示日期。例如“1997-07-01”。 |
%g | 年份的後兩位數字,比如1997年表示為:97 |
%G | 完整的公元年份表示,比如1997年表示:1997 |
%h | 同“%b”一樣,簡寫的月份名。 |
%H | 以24小時制表示小時數(00-23)。 |
%I | 以12小時制表示小時數(01-12)。 |
%j | 十進制表示一年中的天數(001-366)。 |
%k | 同“%H”,表示法為:0-23 |
%l | 同“%I”,表示法為:1-12。 |
%m | 十進制表示的月份,表示法:01-12。 |
%M | 十時制表示的分鐘數,表示法:00-59。 |
%n | 同“\n”,換行。 |
%p | 本地AM或PM的等價顯示。 |
%P | 同“%p”相似,但使用小寫的am和pm來表示。 |
%r | 相當於使用“%I:%M:%S %p”格式,例如:“08:31:50 PM”。 |
%R | 相當於使用“%H:%M”格式,例如:“22:31”。 |
%S | 十進制的秒數,表示法:00-59。 |
%t | 水平制表符,同“\t” |
%T | 24小時時間表示,相當於“%H:%M:%S”格式。 |
%u | 一星期中的星期日期,範圍:1-7,星期一從1開始。 |
%U | 一年中的星期數,範圍:00-53,一月第一個星期日開始為01。 |
%V | 一年中的星期數,範圍:00-53,一月第一個星期一開始為01。 |
%w | 一星期中的星期日期,範圍:0-6,星期日從0開始。 |
%W | 一年中的星期數,範圍:00-53,一月第一個星期一開始為01。 |
%x | 標準的日期串。比如2017年1月2日,表示成:"01/02/17"。 |
%X | 標準的時間串。比如2017年1月2日10點23分9秒,表示成:“10:23:09”。 |
%y | 不帶世紀的十進制年份(值從0到99) |
%Y | 帶世紀部分的十制年份 |
%z,%Z | 時區名稱,如果不能得到時區名稱則返回空字符。 |
%% | 百分號 |
比如2017年的1月1日是星期日,使用%U得到的值是“01”
比如2016年的1月1日是星期五,使用%U得到的值是“00”
關於%V參數:
比如2017年的1月1日是星期日,使用%V得到的值是“52”
比如2017年的1月1日是星期一,使用%V得到的值是“01”
比如2016年的1月1日是星期五,使用%V得到的值是“53”
更新記錄1.20170720 更新時間函數關系圖;
c&c++ datetime