首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C/C++ 時間函數詳解:time、localtime、gmtime、strftime

     編輯:關於C++

1. time() — 獲取時間戳

返回自 1970-01-01 00:00:00 UTC 至今的秒數(time_t)。

time_t now = time(nullptr);
cout << now; // 如 1705234567

2. localtime() / gmtime() — 轉換為 tm 結構

  • localtime:轉為本地時區的 tm。
  • gmtime:轉為 UTC 時間的 tm。

注意: 兩者返回指向靜態內部 tm 的指針,後續調用會覆蓋前一次結果,需立即拷貝或使用。

3. tm 結構體成員

tm_sec   (0-59)   秒
tm_min   (0-59)   分
tm_hour  (0-23)   時
tm_mday  (1-31)   日
tm_mon   (0-11)   月 (0=一月)
tm_year  年份-1900
tm_wday  (0-6)    星期 (0=週日)
tm_yday  (0-365)  年內天數
tm_isdst 夏令時標誌

4. strftime() — 格式化輸出

常用格式符:

符號含義示例
%Y四位年份2024
%m兩位月份01
%d兩位日期14
%H24制小時10
%M分鐘37
%S秒05
%F%Y-%m-%d2024-01-14
%T%H:%M:%S10:37:05
char buf[64];
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", localtime(&now));
cout << buf; // 2024-01-14 10:37:05

5. 完整示例:計算兩時間點差值

time_t t1 = 1351118531; // 2012-10-25 06:42:11
time_t t2 = 1351218731; // 2012-10-26 10:32:11
double diff = difftime(t2, t1); // 秒差
cout << diff << " 秒"; // 100200
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved