c++中利用localtime_s函數格式化輸出當地日期與時間


Visual C++ 6.0開發環境中顯示當地日期與時間主要通過localtime()函數來實現,該函數的原型在time.h頭文件中,其語法格式如下:

struct tm *localtime(xonst time_t *timer)

該函數的作用是把timer所指的時間(如函數time返回的時間)轉換為當地標准時間,並以tm結構形式返回。其中,參數timer為主要獲取當前時間的傳遞參數,格式為time_t指針類型。

而在Visual Studio 2010極其以后的版本,新增了安全函數,改成localtime_s(),語法格式也發生了變化:

errno_t localtime_s(
   struct tm* _tm,
   const time_t *time 
);

其中:

_tm
指向要填充的時間結構的指針。
time
指針,指向存儲的時間。  

如果成功,返回值則為零。 如果失敗,返回值將是錯誤代碼。 錯誤代碼是在 Errno.h 中定義的。

結構類型的字段 tm 存儲下面的值,其中每個為 int。

tm_sec
分鍾后的幾秒 (0-59)。
tm_min
小時后的分鍾 (0-59)。
tm_hour
午夜后經過的小時 (0-23)。
tm_mday
月 (1-31) 天。
tm_mon
月 (0 – 11;年 1 月 = 0)。
tm_year
年份 (當前年份減去 1900年)。
tm_wday
星期幾 (0 – 6;星期日 = 0)。
tm_yday
每年的一天 (0-365;1 月 1 日 = 0)。
tm_isdst
如果夏令時有效,則為,正值夏時制不起作用; 如果為 0如果夏時制的狀態是未知的負值。 如果 TZ 設置環境變量,C 運行庫會假定規則適用於美國境內用於實現夏令時 (DST) 計算。

下面以一個實例來輸出當地日期與時間:

#include <stdio.h>
#include <string.h>
#include <time.h>

int main(void)
{
        struct tm t;   //tm結構指針
	time_t now;  //聲明time_t類型變量
	time(&now);      //獲取系統日期和時間
	localtime_s(&t, &now);   //獲取當地日期和時間
        
       //格式化輸出本地時間
       printf("年:%d\n", t.tm_year + 1900);
	printf("月:%d\n", t.tm_mon + 1);
	printf("日:%d\n", t.tm_mday);
	printf("周:%d\n", t.tm_wday);
	printf("一年中:%d\n", t.tm_yday);
	printf("時:%d\n", t.tm_hour);
	printf("分:%d\n", t.tm_min);
	printf("秒:%d\n", t.tm_sec);
	printf("夏令時:%d\n", t.tm_isdst);
	system("pause");
	//getchar();
	return 0;

}

  本文轉載於:https://blog.csdn.net/xingcen/article/details/55669054


免責聲明!

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



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