c++輸出當前的時間


1. 時間相關數據類型#

一個是time_t,與時間函數相關的變量,定義的變量記錄着自 1970 年 1 月 1 日以來經過的秒數,也稱作時間戳。
另一個是結構體tm

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 到 11  int tm_year; // 自 1900 起的年數  int tm_wday; // 一周中的第幾天,范圍從 0 到 6  int tm_yday; // 一年中的第幾天,范圍從 0 到 365  int tm_isdst; // 夏令時 }; 

2. 時間相關處理函數#

time_t time(time_t *time); 

一般使用time(NULL)即可,可得到當前時區的時間戳。

struct tm *localtime(const time_t *timer); 

將time_t類型轉換為本地時間的 tm 結構的指針。

size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 

str -- 這是指向目標數組的指針,用來復制產生的 C 字符串。
maxsize -- 這是被復制到 str 的最大字符數。
format -- 這是 C 字符串,包含了普通字符和特殊格式說明符的任何組合。這些格式說明符由函數替換為表示 tm 中所指定時間的相對應值。
格式說明符:

說明符 含義 實例
%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
%% 一個 % 符號 %

3. 代碼實現#

char str[50];
time_t now = time(NULL);
strftime(str, 50, "%x %X", localtime(&now));
cout << str << endl;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM