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
