我想了解time()和gmtime()的用法意思,真的不會(huì)T T望指教!【localtime】time() 獲取當(dāng)前時(shí)間值(整數(shù)),表示1970.1.1以來(lái)的秒數(shù) 。
The time function returns the number of seconds
elapsed since midnight (00:00:00), January 1, 1970, Coordinated Universal Time
(UTC), according to the system clock.
gmtime 把整數(shù)時(shí)間值轉(zhuǎn)換成結(jié)構(gòu)體,以便取出年,月,日 等詳情 。
Convert a time value to a structure,
Linux中g(shù)mtime和localtime的區(qū)別格林威治時(shí)間,也就是格林威治天文臺(tái)的時(shí)間,這個(gè)是世界標(biāo)準(zhǔn)時(shí) 。本初子午線就是畫在了格林威治天文臺(tái)所在的經(jīng)度上 。
這個(gè)時(shí)間不管你在什么地方 , 都是一樣的 。因?yàn)楦窳滞翁煳呐_(tái)是不會(huì)亂竄的 。
localtime 是本地時(shí)間 。這個(gè)本地時(shí)間,就是看這個(gè)地方所在的時(shí)區(qū) 。
時(shí)間是午夜為 00 點(diǎn) 00 分 。所以格林威治時(shí)間,就是格林威治午夜定為 00 點(diǎn) 00 分 。
但是因?yàn)榈厍蚴菆A的,別的地方如果使用格林威治的午夜定位 00 點(diǎn) 00 分 , 就會(huì)出現(xiàn)太陽(yáng)在不同位置的問(wèn)題 。比如格林威治午夜 00:00 ,新西蘭正值中午
所以地球上劃分了 24 個(gè)時(shí)區(qū),每個(gè)時(shí)區(qū)相差一個(gè)小時(shí)(國(guó)際日期變更線兩邊相差 24 小時(shí)) 。各個(gè)地方都把自己所在時(shí)區(qū)當(dāng)作本地時(shí)間.當(dāng)然并不一定非要按照自己在什么地方就用什么時(shí)間,比如中國(guó)就是同一 +8 GMT (也就是格林威治時(shí)間 +8 小時(shí)),新疆就算不在 +8 GMT 這個(gè)區(qū)域上也用北京一樣的時(shí)間 , 便于時(shí)間統(tǒng)一 。
這就是兩個(gè)的區(qū)別 。
用localtime和gmtime得到的不同值,用mktime所得到的秒數(shù)是一樣的Linux中g(shù)mtime和localtime的區(qū)別 前段時(shí)間用到,寫了段小測(cè)試代碼,個(gè)人覺得足夠清楚的表明了二者的區(qū)別了,還是不明白的話,就看看APUE里面的章節(jié)吧 。#include #include int main(int argc, char **argv) { time_t tmpcal_ptr = {0};
C++ 如何將世界時(shí)間轉(zhuǎn)化成北京時(shí)間?(用localtime函數(shù)是如何區(qū)分大月還是小月還有平月?為方便調(diào)試程序,輸入數(shù)據(jù)我用了空格 。
#include
#include
void main(){
struct tm *ptm;
time_trawtime, t;
int year,month,mday,hh,mm,ss;
time ( &rawtime );
ptm = gmtime ( &rawtime );//建 UTC 時(shí)間
printf("Please enter year month day hour minute second\n");
printf("For example: \n");
printf("2013 2 28 23 35 4\n");
scanf("%d %d %d %d %d %d", &year, &month, &mday, &hh,&mm,&ss);
ptm->tm_year = year - 1900;
ptm->tm_mon= month - 1;
ptm->tm_mday = mday ;
ptm->tm_hour = hh ;
ptm->tm_min = mm ;
ptm->tm_sec = ss ;
t = mktime (ptm);//得 UTC 時(shí)間 年月日時(shí)分秒
printf("%s ",ctime(&t));// 打印出 Thu Feb 28 23:35:04 2013
t = t+8*3600;//北京時(shí)間,加 8 小時(shí)就是
printf("%s ",ctime(&t));// 打印出 Fri Mar 01 07:35:04 2013
}
// MS VC++ 6.0 編譯器
c語(yǔ)言 時(shí)間函數(shù)c語(yǔ)言時(shí)間函數(shù):
1、獲得日歷時(shí)間函數(shù):
可以通過(guò)time()函數(shù)來(lái)獲得日歷時(shí)間(Calendar Time),其原型為:time_t time(time_t * timer);
如果已經(jīng)聲明了參數(shù)timer,可以從參數(shù)timer返回現(xiàn)在的日歷時(shí)間,同時(shí)也可以通過(guò)返回值返回現(xiàn)在的日歷時(shí)間,即從一個(gè)時(shí)間點(diǎn)(例如:1970年1月1日0時(shí)0分0秒)到現(xiàn)在此時(shí)的秒數(shù) 。如果參數(shù)為空(NUL),函數(shù)將只通過(guò)返回值返回現(xiàn)在的日歷時(shí)間,比如下面這個(gè)例子用來(lái)顯示當(dāng)前的日歷時(shí)間:
2、獲得日期和時(shí)間函數(shù):
這里說(shuō)的日期和時(shí)間就是平時(shí)所說(shuō)的年、月、日、時(shí)、分、秒等信息 。從第2節(jié)我們已經(jīng)知道這些信息都保存在一個(gè)名為tm的結(jié)構(gòu)體中,那么如何將一個(gè)日歷時(shí)間保存為一個(gè)tm結(jié)構(gòu)的對(duì)象呢?
其中可以使用的函數(shù)是gmtime()和localtime(),這兩個(gè)函數(shù)的原型為:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中g(shù)mtime()函數(shù)是將日歷時(shí)間轉(zhuǎn)化為世界標(biāo)準(zhǔn)時(shí)間(即格林尼治時(shí)間),并返回一個(gè)tm結(jié)構(gòu)體來(lái)保存這個(gè)時(shí)間 , 而localtime()函數(shù)是將日歷時(shí)間轉(zhuǎn)化為本地時(shí)間 。比如現(xiàn)在用gmtime()函數(shù)獲得的世界標(biāo)準(zhǔn)時(shí)間是2005年7月30日7點(diǎn)18分20秒,那么用localtime()函數(shù)在中國(guó)地區(qū)獲得的本地時(shí)間會(huì)比世界標(biāo)準(zhǔn)時(shí)間晚8個(gè)小時(shí),即2005年7月30日15點(diǎn)18分20秒 。
求"RIGHT-right",local=localtime(case37:elseif(c!=0)printf("thereare因?yàn)閠emplatecursor(x,y);
誰(shuí)能解釋下關(guān)于 c++ localtime()一順來(lái)就可以了,
首先聲明了一個(gè)結(jié)構(gòu)體,類型是struct tm *名字是local,
之后聲明了一個(gè)time_t的數(shù)據(jù)類型,名字是t,
然后調(diào)用time()函數(shù),time函數(shù)的返回值是time_t類型的,于是賦值給t,
接著調(diào)用localtime()函數(shù),函數(shù)需要傳遞進(jìn)去的參數(shù)是&t,也就是之前t的地址,localtime()的返回值是一個(gè)struct tm結(jié)構(gòu),于是返回值用local保存.
printf就是格式化輸出字符串,這個(gè)真沒啥好說(shuō)的,哪個(gè)學(xué)編程的第一句不是輸出helloworld的.
local->tm_hour,就是訪問(wèn)local結(jié)構(gòu)的tm_hour.配合printf也就是輸出tm_hour的值了.
如果對(duì)localtime()函數(shù)有不了解的地方,去MSDN或者直接谷歌一下就可以了.有很多資料的.
localtime在C中的用法time_t t = time(0);
char tmp[64];
strftime(tmp, sizeof(tmp), "System-%Y-%m.log", localtime(&t) );
struct tm* ptmTemp = localtime(&t);
int nyear = ptmTemp->tm_year;
localtime在易語(yǔ)言怎么使用.版本 2
.局部變量 時(shí)間, 日期時(shí)間型
時(shí)間 = 取現(xiàn)行時(shí)間 ()
''要取這個(gè)時(shí)間的年月日,時(shí)分秒,可以
.版本 2
取年份 (時(shí)間)
取月份 (時(shí)間)
取日 (時(shí)間)
取小時(shí) (時(shí)間)
取分鐘 (時(shí)間)
取秒 (時(shí)間)
localtime(&timep)是如何實(shí)現(xiàn)的?調(diào)試到localtime里面去看源碼、
python中的time模塊,如何獲取當(dāng)前時(shí)間并格import time# 使用time獲取當(dāng)前時(shí)間time.localtime()# 使用 time 模塊的 strftime 方法來(lái)格式化日期,:# 格式化成2018-05-28 17:36:35形式print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) )# 格式化成Mon May 28 17:36:35 2018形式print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))python3
python time模塊通過(guò)time.strftime獲取時(shí)間格式中的月份是帶有0的import datetimed = datetime.date(2019, 2, 14)print('%d-%d-%d' % (d.year, d.month, d.day))
python中引用time模塊,其中有一條語(yǔ)句有點(diǎn)疑問(wèn),求大神指點(diǎn),time·local+()python3.4.2,time模塊沒有time·local+()這個(gè)函數(shù),但是我猜你是問(wèn)的對(duì)返回值后面加中括號(hào)的作用,這個(gè)作用是表示對(duì)可迭代對(duì)象如數(shù)組、元祖、字符串等對(duì)象的引用 , 括號(hào)中的數(shù)字表示對(duì)對(duì)象中第n-1個(gè)元素的引用(下標(biāo)從0開始 , 所以要減1)
python 的time模塊獲取的是什么時(shí)間好像是秒,可以用datetime模塊中的datetime函數(shù)轉(zhuǎn)換成一般的時(shí)間格式
python中哪個(gè)模塊可以輸出今天的日期import time
print time.time()
輸出的結(jié)果是:
1279578704.6725271
但是這樣是一連串的數(shù)字不是我們想要的結(jié)果 , 我們可以利用time模塊的格式化時(shí)間的方法來(lái)處理:
time.localtime(time.time())
用time.localtime()方法,作用是格式化時(shí)間戳為本地的時(shí)間 。
輸出的結(jié)果是:
time.struct_time(tm_year=2010, tm_mon=7, tm_mday=19, tm_hour=22, tm_min=33, tm_sec=39, tm_wday=0, tm_yday=200, tm_isdst=0)
現(xiàn)在看起來(lái)更有希望格式成我們想要的時(shí)間了 。
time.strftime('%Y-%m-%d',time.localtime(time.time()))
最后用time.strftime()方法,把剛才的一大串信息格式化成我們想要的東西 , 現(xiàn)在的結(jié)果是:
2010-07-19
C語(yǔ)言關(guān)于localtime_s()和asctime_s()兩個(gè)函數(shù)的用法Visual C++ 6.0開發(fā)環(huán)境中顯示當(dāng)?shù)厝掌谂c時(shí)間主要通過(guò)localtime()函數(shù)來(lái)實(shí)現(xiàn),該函數(shù)的原型在time.h頭文件中,其語(yǔ)法格式如下:struct tm *localtime(xonst time_t *timer)該函數(shù)的作用是把timer所指的時(shí)間(如函數(shù)time返回的時(shí)間)轉(zhuǎn)換為當(dāng)?shù)貥?biāo)準(zhǔn)時(shí)間,并以tm結(jié)構(gòu)形式返回 。其中,參數(shù)timer為主要獲取當(dāng)前時(shí)間的傳遞參數(shù),格式為time_t指針類型 。而在Visual Studio 2010極其以后的版本,新增了安全函數(shù),改成localtime_s(),語(yǔ)法格式也發(fā)生了變化:errno_t localtime_s(struct tm* _tm,const time_t *time );其中:_tm指向要填充的時(shí)間結(jié)構(gòu)的指針 。time指針,指向存儲(chǔ)的時(shí)間 。如果成功,返回值則為零 。如果失敗,返回值將是錯(cuò)誤代碼 。錯(cuò)誤代碼是在 Errno.h 中定義的 。結(jié)構(gòu)類型的字段 tm 存儲(chǔ)下面的值,其中每個(gè)為 int 。tm_sec分鐘后的幾秒 (0-59) 。tm_min小時(shí)后的分鐘 (0-59) 。tm_hour午夜后經(jīng)過(guò)的小時(shí) (0-23) 。tm_mday月 (1-31) 天 。tm_mon月 (0 – 11;年 1 月 = 0) 。tm_year年份 (當(dāng)前年份減去 1900年) 。tm_wday星期幾 (0 – 6;星期日 = 0) 。tm_yday每年的一天 (0-365;1 月 1 日 = 0) 。tm_isdst如果夏令時(shí)有效,則為,正值夏時(shí)制不起作用; 如果為 0如果夏時(shí)制的狀態(tài)是未知的負(fù)值 。如果 TZ 設(shè)置環(huán)境變量,C 運(yùn)行庫(kù)會(huì)假定規(guī)則適用于美國(guó)境內(nèi)用于實(shí)現(xiàn)夏令時(shí) (DST) 計(jì)算 。下面以一個(gè)Visual Studio 2015實(shí)例來(lái)輸出當(dāng)?shù)厝掌谂c時(shí)間:#include #includeusing namespace std; int main(void){struct tm t;//tm結(jié)構(gòu)指針time_t now;//聲明time_t類型變量time(&now);//獲取系統(tǒng)日期和時(shí)間localtime_s(&t, &now);//獲取當(dāng)?shù)厝掌诤蜁r(shí)間//格式化輸出本地時(shí)間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("時(shí):%d\n", t.tm_hour);printf("分:%d\n", t.tm_min);printf("秒:%d\n", t.tm_sec);printf("夏令時(shí):%d\n", t.tm_isdst);system("pause");return 0;}
c語(yǔ)言中time函數(shù)的用法頭文件time.h
@函數(shù)名稱:localtime
函數(shù)原型:struct tm *localtime(const time_t *timer)
函數(shù)功能:返回一個(gè)以tm結(jié)構(gòu)表達(dá)的機(jī)器時(shí)間信息
函數(shù)返回:以tm結(jié)構(gòu)表達(dá)的時(shí)間,結(jié)構(gòu)tm定義如下:
structtm{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
參數(shù)說(shuō)明:timer-使用time()函數(shù)獲得的機(jī)器時(shí)間
#include
#include
#include
int main()
{
time_t timer;
struct tm *tblock;
timer=time(NULL);
tblock=localtime(&timer);
printf("Local time is: %s",asctime(tblock));
return 0;
}
@函數(shù)名稱:asctime
函數(shù)原型:char* asctime(struct tm * ptr)
函數(shù)功能:得到機(jī)器時(shí)間(日期時(shí)間轉(zhuǎn)換為ASCII碼)
函數(shù)返回:返回的時(shí)間字符串格式為:星期,月,日,小時(shí):分:秒,年
參數(shù)說(shuō)明:結(jié)構(gòu)指針ptr應(yīng)通過(guò)函數(shù)localtime()和gmtime()得到
所屬文件:
#include
#include
#include
int main()
{
struct tm t;
char str[80];
t.tm_sec=1;
t.tm_min=3;
t.tm_hour=7;
t.tm_mday=22;
t.tm_mon=11;
t.tm_year=56;
t.tm_wday=4;
t.tm_yday=0;
t.tm_isdst=0;
strcpy(str,asctime(&t));
printf("%s",str);
return 0;
}
@函數(shù)名稱:ctime
函數(shù)原型:char *ctime(long time)
函數(shù)功能:得到日歷時(shí)間
函數(shù)返回:返回字符串格式:星期,月,日,小時(shí):分:秒,年
參數(shù)說(shuō)明:time-該參數(shù)應(yīng)由函數(shù)time獲得
所屬文件:
#include
#include
int main()
{
time_t t;
time(&t);
printf("Today's date and time: %s",ctime(&t));
return 0;
}
@函數(shù)名稱:difftime
函數(shù)原型:double difftime(time_t time2, time_t time1)
函數(shù)功能:得到兩次機(jī)器時(shí)間差,單位為秒
函數(shù)返回:時(shí)間差 , 單位為秒
參數(shù)說(shuō)明:time1-機(jī)器時(shí)間一,time2-機(jī)器時(shí)間二.該參數(shù)應(yīng)使用time函數(shù)獲得
所屬文件:
#include
#include
#include
#include
int main()
{
time_t first, second;
clrscr();
first=time(NULL);
delay(2000);
second=time(NULL);
printf("The difference is: %f seconds",difftime(second,first));
getch();
return 0;
}
@函數(shù)名稱:gmtime
函數(shù)原型:struct tm *gmtime(time_t*time)
函數(shù)功能:得到以結(jié)構(gòu)tm表示的時(shí)間信息
函數(shù)返回:以結(jié)構(gòu)tm表示的時(shí)間信息指針
參數(shù)說(shuō)明:time-用函數(shù)time()得到的時(shí)間信息
所屬文件:
#include
#include
#include
#include
char *tzstr="TZ=PST8PDT";
int main()
{
time_t t;
struct tm *gmt, *area;
putenv(tzstr);
tzset();
t=time(NULL);
area=localtime(&t);
printf("Local time is:%s", asctime(area));
gmt=gmtime(&t);
printf("GMT is:%s", asctime(gmt));
return 0;
}
@函數(shù)名稱:time
函數(shù)原型:time_t time(time_t *timer)
函數(shù)功能:得到機(jī)器的日歷時(shí)間或者設(shè)置日歷時(shí)間
函數(shù)返回:機(jī)器日歷時(shí)間
參數(shù)說(shuō)明:timer=NULL時(shí)得到機(jī)器日歷時(shí)間 , timer=時(shí)間數(shù)值時(shí),用于設(shè)置日歷時(shí)間,time_t是一個(gè)long類型
所屬文件:
#include
#include
#include
int main()
{
time_t t;
t=time();
printf("The number of seconds since January 1,1970 is %ld",t);
return 0;
}
@函數(shù)名稱:tzset
函數(shù)原型:void tzset(void)
函數(shù)功能:UNIX兼容函數(shù),用于得到時(shí)區(qū),在DOS環(huán)境下無(wú)用途
函數(shù)返回:
參數(shù)說(shuō)明:
所屬文件:
#include
#include
#include
int main()
{
time_t td;
putenv("TZ=PST8PDT");
tzset();
time(&td);
printf("Current time=%s",asctime(localtime(&td)));
return 0;
}
C語(yǔ)言的問(wèn)題:請(qǐng)問(wèn)ctime()和asctime有什么區(qū)別?asctime是把時(shí)間換成ascii碼 。
ctime是把時(shí)間轉(zhuǎn)換成字符串 。
具體介紹如下:
函數(shù)名: asctime
功 能: 轉(zhuǎn)換日期和時(shí)間為ASCII碼
用 法: char *asctime(const struct tm *tblock);
程序例:
#include
#include
#include
int main(void)
{
struct tm t;
char str[80];
/* sample loading of tm structure */
t.tm_sec = 1; /* Seconds */
t.tm_min = 30; /* Minutes */
t.tm_hour = 9; /* Hour */
t.tm_mday = 22; /* Day of the Month */
t.tm_mon = 11; /* Month */
t.tm_year = 56; /* Year - does not include century */
t.tm_wday = 4; /* Day of the week */
t.tm_yday = 0; /* Does not show in asctime */
t.tm_isdst = 0; /* Is Daylight SavTime; does not show in asctime */
/* converts structure to null terminated
string */
strcpy(str, asctime(&t));
printf("%s\n", str);
return 0;
}
英文詳解:
[編輯本段]asctime
Synopsis
#include
char *asctime(const struct tm *timeptr);
Description
The asctime function converts the broken-down time in the structure pointed to by timeptr into a string in the form
Sun Sep 16 01:03:52 1973\n\0
using the equivalent of the following algorithm.
char *asctime(const struct tm *timeptr)
{
static const char wday_name[7][3] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
};
static const char mon_name[12][3] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
static char result[26];
sprintf(result, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
wday_name[timeptr->tm_wday],
mon_name[timeptr->tm_mon],
timeptr->tm_mday, timeptr->tm_hour,
timeptr->tm_min, timeptr->tm_sec,
1900 + timeptr->tm_year);
return result;
}
Returns
The asctime function returns a pointer to the string.
Example :
#include
#include
void main(void)
{
struct tm *newtime;
time_t ltime;
/* Get the time in seconds */
time (<ime);
/* convert it to the structure tm */
newtime = localtime(<ime);
/* print the local time as a string */
printf("The current time and dat are %s", asctime(newtime));
}
The current time and dat are Mon Dec 28 12:33:50 1998
ctime
函數(shù)名: ctime
功 能: 把日期和時(shí)間轉(zhuǎn)換為字符串
用 法: char *ctime(const time_t *time);
程序例:
#include
#include
int main(void)
{
time_t t;
time(&t);
printf("Today's date and time: %s\n", ctime(&t));
return 0;
}
c語(yǔ)言 localtime函數(shù) 問(wèn)題#include
#include
main()
{
long i;
struct tm *tblock;
i=0;
i= time(NULL);
tblock=localtime(&i);
printf("\n%s",asctime(tblock));
}
VS2012編譯器中 localtime 函數(shù)使用問(wèn)題localtime在vs2010以后的版本都被認(rèn)為是不安全的,使用localtime_s,
localTime = localtime(&curTime);這是微軟SB的東西,把localtime函數(shù)改為函數(shù)localtime_s,然后參數(shù)參照l(shuí)ocaltime_s的參數(shù)修改即可 , 只是增加了安全性
localtime()這樣用錯(cuò)了嗎?time_t t_NowUnixTime=time(NULL);
struct tm NowDateTime ;
NowDateTime = *localtime(&t_NowUnixTime);
printf("%d\n",NowDateTime.tm_year+1900);
我這邊沒有問(wèn)題,代碼也符合邏輯,估計(jì)是不是t_NowUnixTime沒有初始化,如果不初始化確實(shí)會(huì)在第三句話中斷
vs2013寫c++程序,其中l(wèi)ocaltime_s函數(shù)不接受一個(gè)參數(shù)怎么解決?!Visual C++ 6.0開發(fā)環(huán)境中顯示當(dāng)?shù)厝掌谂c時(shí)間主要通過(guò)localtime()函數(shù)來(lái)實(shí)現(xiàn) , 該函數(shù)的原型在time.h頭文件中,其語(yǔ)法格式如下:struct tm *localtime(xonst time_t *timer)該函數(shù)的作用是把timer所指的時(shí)間(如函數(shù)time返回的時(shí)間)轉(zhuǎn)換為當(dāng)?shù)貥?biāo)準(zhǔn)時(shí)間,并以tm結(jié)構(gòu)形式返回 。其中 , 參數(shù)timer為主要獲取當(dāng)前時(shí)間的傳遞參數(shù),格式為time_t指針類型 。而在Visual Studio 2010及其以后的版本,新增了安全函數(shù),改成localtime_s(),語(yǔ)法格式也發(fā)生了變化:errno_t localtime_s(struct tm* _tm,const time_t *time );其中:_tm指向要填充的時(shí)間結(jié)構(gòu)的指針 。time指針,指向存儲(chǔ)的時(shí)間 。如果成功 , 返回值則為零 。如果失敗,返回值將是錯(cuò)誤代碼 。錯(cuò)誤代碼是在 Errno.h 中定義的 。結(jié)構(gòu)類型的字段 tm 存儲(chǔ)下面的值,其中每個(gè)為 int 。tm_sec分鐘后的幾秒 (0-59) 。tm_min小時(shí)后的分鐘 (0-59) 。tm_hour午夜后經(jīng)過(guò)的小時(shí) (0-23) 。tm_mday月 (1-31) 天 。tm_mon月 (0 – 11;年 1 月 = 0) 。tm_year年份 (當(dāng)前年份減去 1900年) 。tm_wday星期幾 (0 – 6;星期日 = 0) 。tm_yday每年的一天 (0-365;1 月 1 日 = 0) 。tm_isdst如果夏令時(shí)有效,則為,正值夏時(shí)制不起作用; 如果為 0如果夏時(shí)制的狀態(tài)是未知的負(fù)值 。如果 TZ 設(shè)置環(huán)境變量,C 運(yùn)行庫(kù)會(huì)假定規(guī)則適用于美國(guó)境內(nèi)用于實(shí)現(xiàn)夏令時(shí) (DST) 計(jì)算 。下面以一個(gè)Visual Studio 2015實(shí)例來(lái)輸出當(dāng)?shù)厝掌谂c時(shí)間:#include #include using namespace std;int main(void){struct tm t;//tm結(jié)構(gòu)指針time_t now;//聲明time_t類型變量time(&now);//獲取系統(tǒng)日期和時(shí)間localtime_s(&t, &now);//獲取當(dāng)?shù)厝掌诤蜁r(shí)間//格式化輸出本地時(shí)間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("時(shí):%d\n", t.tm_hour);printf("分:%d\n", t.tm_min);printf("秒:%d\n", t.tm_sec);printf("夏令時(shí):%d\n", t.tm_isdst);system("pause");return 0;}
tm tim=*localtime(&curtime);這個(gè)C++語(yǔ)句怎么解釋??最好詳細(xì)點(diǎn)……把系統(tǒng)時(shí)間轉(zhuǎn)換成本地時(shí)間, 以指針形式存入tim
C/C++中關(guān)于時(shí)間函數(shù)time()的應(yīng)用問(wèn)題time_t curTime;//定義time_t變量
struct tm * datePtr = NULL;//定義tm指針
char timeStr[40];//定義用于保存時(shí)間字符串的char數(shù)組
time(&curTime);//取當(dāng)前時(shí)間,其值表示從1970年1月1日00:00:00到當(dāng)前時(shí)刻的秒數(shù)
datePtr = localtime(&curTime);//把從1970-1-1零點(diǎn)零分到當(dāng)前時(shí)間系統(tǒng)所偏移的秒數(shù)時(shí)間轉(zhuǎn)換為日歷時(shí)間
sprintf(timeStr,"%d/%d/%d___%d:%d:%d",(1900 + datePtr->tm_year),
(1 + datePtr->tm_mon),
datePtr->tm_mday,
datePtr->tm_hour,
datePtr->tm_min,
datePtr->tm_sec);//格式化字符串 類似:2013/4/10___10:51:56tm_year是年份,從1900開始所以要加1900,tm_mon是月份,用0開始 , 所以要加1 。
Python 時(shí)間模塊 time.localtime() 和 time.localtime(time.time()) 有什么區(qū)別看文檔啊如果參數(shù)為空,就為當(dāng)前時(shí)間 。
時(shí)間函數(shù) gmtime 和 localtime 有什么區(qū)別1、localtime是把從1970-1-1零點(diǎn)零分到當(dāng)前時(shí)間系統(tǒng)所偏移的秒數(shù)時(shí)間轉(zhuǎn)換為本地時(shí)間,而gmtime函數(shù)轉(zhuǎn)換后的時(shí)間沒有經(jīng)過(guò)時(shí)區(qū)變換,是UTC時(shí)間 。2、說(shuō)明:此函數(shù)獲得的tm結(jié)構(gòu)體的時(shí)間是日歷時(shí)間 。3、用法:structtm*localtime(consttime_t*clock);4、返回值:返回指向tm結(jié)構(gòu)體的指針.tm結(jié)構(gòu)體是time.h中定義的用于分別存儲(chǔ)時(shí)間的各個(gè)量(年月日等)的結(jié)構(gòu)體.5、范例
python time.clock 和time.time的區(qū)別一,兩個(gè)函數(shù)的文檔:
1,time.time():
time.time()
Return
the time in seconds since the epoch as a floating point number. Note
that even though the time is always returned as a floating point number,
not all systems provide time with a better precision than 1 second.
While this function normally returns non-decreasing values, it can
return a lower value than a previous call if the system clock has been
set back between the two calls.
time.time()
返回從紀(jì)元(1970.1.1)至今的秒數(shù) 。雖然這個(gè)函數(shù)的返回值永遠(yuǎn)為浮點(diǎn)數(shù) , 但并不是所有系統(tǒng)提供的秒數(shù)都會(huì)精確到小數(shù)點(diǎn)以后 。一般情況下這個(gè)函數(shù)的返回值不會(huì)小于它上一次被調(diào)用的返回值 , 除非系統(tǒng)時(shí)鐘在兩次調(diào)用之間發(fā)生了重置 。
2,time.clock():
time.clock()
On
Unix, return the current processor time as a floating point number
expressed in seconds. The precision, and in fact the very definition of
the meaning of “processor time”, depends on that of the C function of
the same name, but in any case, this is the function to use for
benchmarking Python or timing algorithms.
On Windows, this
function returns wall-clock seconds elapsed since the first call to this
function, as a floating point number, based on the Win32 function QueryPerformanceCounter(). The resolution is typically better than one microsecond.
time.clock()
在Unix 中,將當(dāng)前的處理器時(shí)間以浮點(diǎn)數(shù)的形式返回,單位為秒 。它的精確度(準(zhǔn)確地說(shuō)是“處理器時(shí)間”的精確度)取決于同名的C函數(shù),無(wú)論如何,這個(gè)函數(shù)是python關(guān)于時(shí)間計(jì)算的標(biāo)尺 。
WINDOWS中,第一次調(diào)用,返回的是進(jìn)程運(yùn)行的實(shí)際時(shí)間 。而第二次之后的調(diào)用是自第一次調(diào)用以后到現(xiàn)在的運(yùn)行時(shí)間 。(實(shí)際上是以WIN32上QueryPerformanceCounter()為基礎(chǔ),它比毫秒表示更為精確)
二,用法及總結(jié)
1,在Windows中 , time.clock()更精確;
2,這兩個(gè)函數(shù)不可以混合使用;
python 計(jì)算時(shí)間差秒python 計(jì)算時(shí)間差秒:Q:如何方便的計(jì)算兩個(gè)時(shí)間的差,如兩個(gè)時(shí)間相差幾天 , 幾小時(shí)等A:使用datetime模塊可以很方便的解決這個(gè)問(wèn)題,舉例如下:上例演示了計(jì)算兩個(gè)日期相差天數(shù)的計(jì)算 。上例演示了計(jì)算運(yùn)行時(shí)間的例子,以秒進(jìn)行顯示 。上例演示了計(jì)算當(dāng)前時(shí)間向后10小時(shí)的時(shí)間 。拓展:其本上常用的類有:datetime和timedelta兩個(gè) 。它們之間可以相互加減 。每個(gè)類都有一些方法和屬性可以查看具體的值,如datetime可以查看:天數(shù)(day) , 小時(shí)數(shù)(hour),星期幾(weekday())等;timedelta可以查看:天數(shù)(days) , 秒數(shù)(seconds)等 。
C++的time和localtime的函數(shù) 怎么用?仔細(xì)查看MSDN,把下邊的例子敲一遍就明白了 , 很簡(jiǎn)單的,在這里給你說(shuō)的再多,也沒有MSDN上更詳細(xì),更權(quán)威 。
C語(yǔ)言關(guān)于localtime_s()和asctime_s()兩個(gè)函數(shù)的用法 。1、localtime函數(shù):原型:struct tm * localtime(const time_t * clock);功能:把從1970-1-1零點(diǎn)零分到當(dāng)前時(shí)間系統(tǒng)所偏移的秒數(shù)時(shí)間轉(zhuǎn)換為本地時(shí)間, 其中clock為秒數(shù)時(shí)間;返回值:返回一個(gè)tm結(jié)構(gòu)體的指針 。tm結(jié)構(gòu)體是time.h中定義的用于分別存儲(chǔ)時(shí)間的各個(gè)量(年月日等)的結(jié)構(gòu)體 。2、asctime函數(shù):原型:char* asctime (const struct tm * timeptr);功能:把timeptr指向的tm結(jié)構(gòu)體中儲(chǔ)存的時(shí)間轉(zhuǎn)換為字符串;返回值:一個(gè)固定格式的字符串 。字符串格式為:Www Mmm dd hh:mm:ss yyyy 。其中Www為星期,Mmm為月份 , dd為日 , hh為時(shí),mm為分,ss為秒,yyyy為年份;3、例程:#include#includeint main(){time_t rawtime;struct tm * timeinfo;time(&rawtime);timeinfo = localtime(&rawtime);//使用localtime函數(shù)把秒數(shù)時(shí)間rawtime轉(zhuǎn)換為本地時(shí)間以tm結(jié)構(gòu)體保存,并把tm結(jié)構(gòu)體地址儲(chǔ)存到timeinfo當(dāng)中printf("當(dāng)前日期為: %s",asctime(timeinfo));//使用asctime函數(shù)把tm結(jié)構(gòu)體中儲(chǔ)存的時(shí)間轉(zhuǎn)換為字符串,并輸出return 0;}
C++ swprintf_s()函數(shù)的用法"首先,swprintf_s()不是標(biāo)準(zhǔn)的C++函數(shù),它是VC++特有的標(biāo)準(zhǔn)的int swprintf(wchar_t *buffer, const wchar_t *format[, argument, ...]);是sprintf的寬字符版而sprintf又是printf的改進(jìn)版還是給你個(gè)EX:#include int main(void){wchar_t buffer[80];int x=1234;swprintf_s(buffer,80, L""x=%d\n"", x); //將x=1234輸出到bufferwprintf(buffer);return 0;}"
C++中是localtime()函數(shù)將計(jì)時(shí)起點(diǎn)從1970年改為1900年開始的嗎?localtime是 把從1970-1-1零點(diǎn)零分到當(dāng)前時(shí)間系統(tǒng)所偏移的秒數(shù)時(shí)間轉(zhuǎn)換為本地時(shí)間
大聲的問(wèn):linux下C如何才能把當(dāng)前位置的當(dāng)前時(shí)間轉(zhuǎn)換成字符串,有會(huì)的木有?求解決?。。⌒渙死瞺~當(dāng)前位置的時(shí)間是什么意思呢?系統(tǒng)當(dāng)前時(shí)間?
time_t now;
struct tm* timeinfo;
char buf[48];
time(&now);
timeinfo = localtime(&now);
bzero(buf,48);
//2013-02-27 16:38:33這是轉(zhuǎn)化的格式,你隨便怎么寫都成反正是拼接
sprintf(buf,"%4d-%02d-%02d %02d:%02d:%02d",1900+timeinfo->tm_year, 1+timeinfo->tm_mon,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
這樣當(dāng)前時(shí)間就在buf里面了 。這事獲得當(dāng)前時(shí)間 。
如果你要獲得各種時(shí)區(qū)的時(shí)間那么用NTP服務(wù)同步一下就行了 。
對(duì)了別忘了頭文件?。約簃an一下time()就能找到頭文件了
linux中獲取時(shí)間的幾種方法asctime(將時(shí)間和日期以字符串格式表示)
相關(guān)函數(shù)
time,ctime , gmtime,localtime
表頭文件
#include
定義函數(shù)
char * asctime(const struct tm * timeptr);
函數(shù)說(shuō)明
asctime()將參數(shù)timeptr所指的tm結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法,然后將結(jié)果以字符串形態(tài)返回 。此函數(shù)已經(jīng)由時(shí)區(qū)轉(zhuǎn)換成當(dāng)?shù)貢r(shí)間,字符串格式為:“Wed Jun 30 21:49:08 1993\n”
返回值
若再調(diào)用相關(guān)的時(shí)間日期函數(shù),此字符串可能會(huì)被破壞 。此函數(shù)與ctime不同處在于傳入的參數(shù)是不同的結(jié)構(gòu) 。
附加說(shuō)明
返回一字符串表示目前當(dāng)?shù)氐臅r(shí)間日期 。
范例
#include
main()
{
time_t timep;
time (&timep);
printf(“%s”,asctime(gmtime(&timep)));
}
執(zhí)行
Sat Oct 28 02:10:06 2000
ctime(將時(shí)間和日期以字符串格式表示)
相關(guān)函數(shù)
time , asctime,gmtime,localtime
表頭文件
#include
定義函數(shù)
char *ctime(const time_t *timep);
函數(shù)說(shuō)明
ctime()將參數(shù)timep所指的time_t結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法 , 然后將結(jié)果以字符串形態(tài)返回 。此函數(shù)已經(jīng)由時(shí)區(qū)轉(zhuǎn)換成當(dāng)?shù)貢r(shí)間 , 字符串格式為“Wed Jun 30 21 :49 :08 1993\n” 。若再調(diào)用相關(guān)的時(shí)間日期函數(shù),此字符串可能會(huì)被破壞 。
返回值
返回一字符串表示目前當(dāng)?shù)氐臅r(shí)間日期 。
范例
#include
main()
{
time_t timep;
time (&timep);
printf(“%s”,ctime(&timep));
}
執(zhí)行
Sat Oct 28 10 : 12 : 05 2000
gettimeofday(取得目前的時(shí)間)
相關(guān)函數(shù)
time , ctime,ftime,settimeofday
表頭文件
#include
#include
定義函數(shù)
int gettimeofday ( struct timeval * tv , struct timezone * tz )
函數(shù)說(shuō)明
gettimeofday()會(huì)把目前的時(shí)間有tv所指的結(jié)構(gòu)返回 , 當(dāng)?shù)貢r(shí)區(qū)的信息則放到tz所指的結(jié)構(gòu)中 。
timeval結(jié)構(gòu)定義為:
struct timeval{
long tv_sec; /*秒*/
long tv_usec; /*微秒*/
};
timezone 結(jié)構(gòu)定義為:
struct timezone{
int tz_minuteswest; /*和Greenwich 時(shí)間差了多少分鐘*/
int tz_dsttime; /*日光節(jié)約時(shí)間的狀態(tài)*/
};
上述兩個(gè)結(jié)構(gòu)都定義在/usr/include/sys/time.h 。tz_dsttime 所代表的狀態(tài)如下
DST_NONE /*不使用*/
DST_USA /*美國(guó)*/
DST_AUST /*澳洲*/
DST_WET /*西歐*/
DST_MET /*中歐*/
DST_EET /*東歐*/
DST_CAN /*加拿大*/
DST_GB /*大不列顛*/
DST_RUM /*羅馬尼亞*/
DST_TUR /*土耳其*/
DST_AUSTALT /*澳洲(1986年以后)*/
返回值
成功則返回0,失敗返回-1,錯(cuò)誤代碼存于errno 。附加說(shuō)明EFAULT指針tv和tz所指的內(nèi)存空間超出存取權(quán)限 。
范例
#include
#include
main(){
struct timeval tv;
struct timezone tz;
gettimeofday (&tv , &tz);
printf(“tv_sec; %d\n”, tv,.tv_sec) ;
printf(“tv_usec; %d\n”,tv.tv_usec);
printf(“tz_minuteswest; %d\n”, tz.tz_minuteswest);
printf(“tz_dsttime, %d\n”,tz.tz_dsttime);
}
執(zhí)行
tv_sec: 974857339
tv_usec:136996
tz_minuteswest:-540
tz_dsttime:0
gmtime(取得目前時(shí)間和日期)
相關(guān)函數(shù)
time,asctime,ctime,localtime
表頭文件
#include
定義函數(shù)
struct tm*gmtime(const time_t*timep);
函數(shù)說(shuō)明
gmtime()將參數(shù)timep 所指的time_t 結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法 , 然后將結(jié)果由結(jié)構(gòu)tm返回 。
結(jié)構(gòu)tm的定義為
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
int tm_sec 代表目前秒數(shù),正常范圍為0-59,但允許至61秒
int tm_min 代表目前分?jǐn)?shù),范圍0-59
int tm_hour 從午夜算起的時(shí)數(shù),范圍為0-23
int tm_mday 目前月份的日數(shù),范圍01-31
int tm_mon 代表目前月份 , 從一月算起,范圍從0-11
int tm_year 從1900 年算起至今的年數(shù)
int tm_wday 一星期的日數(shù),從星期一算起,范圍為0-6
int tm_yday 從今年1月1日算起至今的天數(shù),范圍為0-365
int tm_isdst 日光節(jié)約時(shí)間的旗標(biāo)
此函數(shù)返回的時(shí)間日期未經(jīng)時(shí)區(qū)轉(zhuǎn)換,而是UTC時(shí)間 。
返回值
返回結(jié)構(gòu)tm代表目前UTC 時(shí)間
范例
#include
main(){
char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
time_t timep;
struct tm *p;
time(&timep);
p=gmtime(&timep);
printf(“%d%d%d”,(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);
printf(“%s%d;%d;%d\n”, wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);
}
執(zhí)行
2000/10/28 Sat 8:15:38
localtime(取得當(dāng)?shù)啬壳皶r(shí)間和日期)
相關(guān)函數(shù)
time, asctime, ctime, gmtime
表頭文件
#include
定義函數(shù)
struct tm *localtime(const time_t * timep);
函數(shù)說(shuō)明
localtime()將參數(shù)timep所指的time_t結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法,然后將結(jié)果由結(jié)構(gòu)tm返回 。結(jié)構(gòu)tm的定義請(qǐng)參考gmtime() 。此函數(shù)返回的時(shí)間日期已經(jīng)轉(zhuǎn)換成當(dāng)?shù)貢r(shí)區(qū) 。
返回值
返回結(jié)構(gòu)tm代表目前的當(dāng)?shù)貢r(shí)間 。
范例
#include
main(){
char *wday[]={“Sun”,”Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sat”};
time_t timep;
struct tm *p;
time(&timep);
p=localtime(&timep); /*取得當(dāng)?shù)貢r(shí)間*/
printf (“%d%d%d ”, (1900+p->tm_year),( l+p->tm_mon), p->tm_mday);
printf(“%s%d:%d:%d\n”, wday[p->tm_wday],p->tm_hour, p->tm_min, p->tm_sec);
}
執(zhí)行
2000/10/28 Sat 11:12:22
mktime(將時(shí)間結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成經(jīng)過(guò)的秒數(shù))
相關(guān)函數(shù)
time,asctime,gmtime,localtime
表頭文件
#include
定義函數(shù)
time_t mktime(strcut tm * timeptr);
函數(shù)說(shuō)明
mktime()用來(lái)將參數(shù)timeptr所指的tm結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成從公元1970年1月1日0時(shí)0分0 秒算起至今的UTC時(shí)間所經(jīng)過(guò)的秒數(shù) 。
返回值
返回經(jīng)過(guò)的秒數(shù) 。
范例
/* 用time()取得時(shí)間(秒數(shù)),利用localtime()
轉(zhuǎn)換成struct tm 再利用mktine()將struct tm轉(zhuǎn)換成原來(lái)的秒數(shù)*/
#include
main()
{
time_t timep;
strcut tm *p;
time(&timep);
printf(“time() : %d \n”,timep);
p=localtime(&timep);
timep = mktime(p);
printf(“time()->localtime()->mktime():%d\n”,timep);
}
執(zhí)行
time():974943297
time()->localtime()->mktime():974943297
settimeofday(設(shè)置目前時(shí)間)
相關(guān)函數(shù)
time,ctime,ftime , gettimeofday
表頭文件
#include
#include
定義函數(shù)
int settimeofday ( const struct timeval *tv,const struct timezone *tz);
函數(shù)說(shuō)明
settimeofday()會(huì)把目前時(shí)間設(shè)成由tv所指的結(jié)構(gòu)信息,當(dāng)?shù)貢r(shí)區(qū)信息則設(shè)成tz所指的結(jié)構(gòu) 。詳細(xì)的說(shuō)明請(qǐng)參考gettimeofday() 。注意,只有root權(quán)限才能使用此函數(shù)修改時(shí)間 。
返回值
成功則返回0,失敗返回-1,錯(cuò)誤代碼存于errno 。
錯(cuò)誤代碼
EPERM 并非由root權(quán)限調(diào)用settimeofday(),權(quán)限不夠 。
EINVAL 時(shí)區(qū)或某個(gè)數(shù)據(jù)是不正確的,無(wú)法正確設(shè)置時(shí)間 。
time(取得目前的時(shí)間)
相關(guān)函數(shù)
ctime , ftime,gettimeofday
表頭文件
#include
定義函數(shù)
time_t time(time_t *t);
函數(shù)說(shuō)明
此函數(shù)會(huì)返回從公元1970年1月1日的UTC時(shí)間從0時(shí)0分0秒算起到現(xiàn)在所經(jīng)過(guò)的秒數(shù) 。如果t 并非空指針的話 , 此函數(shù)也會(huì)將返回值存到t指針?biāo)傅膬?nèi)存 。
返回值
成功則返回秒數(shù),失敗則返回((time_t)-1)值,錯(cuò)誤原因存于errno中 。
范例
#include
mian()
{
int seconds= time((time_t*)NULL);
printf(“%d\n”,seconds);
}
linux中的time函數(shù)怎么實(shí)現(xiàn)的?利用什么原理或器件來(lái)得到秒數(shù)的?asctimeeHPLinux聯(lián)盟
ctimeeHPLinux聯(lián)盟
gettimeofdayeHPLinux聯(lián)盟
gmtimeeHPLinux聯(lián)盟
localtimeeHPLinux聯(lián)盟
mktimeeHPLinux聯(lián)盟
settimeofdayeHPLinux聯(lián)盟
timeeHPLinux聯(lián)盟
asctime(將時(shí)間和日期以字符串格式表示) 相關(guān)函數(shù) time,ctime , gmtime,localtimeeHPLinux聯(lián)盟
表頭文件 #includeeHPLinux聯(lián)盟
定義函數(shù) char * asctime(const struct tm * timeptr);eHPLinux聯(lián)盟
函數(shù)說(shuō)明 asctime()將參數(shù)timeptr所指的tm結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法,然后將結(jié)果以字符串形態(tài)返回 。此函數(shù)已經(jīng)由時(shí)區(qū)轉(zhuǎn)換成當(dāng)?shù)貢r(shí)間,字符串格式為:“Wed Jun 30 21:49:08 1993\n”eHPLinux聯(lián)盟
返回值 若再調(diào)用相關(guān)的時(shí)間日期函數(shù),此字符串可能會(huì)被破壞 。此函數(shù)與ctime不同處在于傳入的參數(shù)是不同的結(jié)構(gòu) 。eHPLinux聯(lián)盟
附加說(shuō)明 返回一字符串表示目前當(dāng)?shù)氐臅r(shí)間日期 。eHPLinux聯(lián)盟
范例 #include eHPLinux聯(lián)盟
main()eHPLinux聯(lián)盟
{eHPLinux聯(lián)盟time_t timep;eHPLinux聯(lián)盟time (&timep);eHPLinux聯(lián)盟printf(“%s”,asctime(gmtime(&timep)));eHPLinux聯(lián)盟}eHPLinux聯(lián)盟
執(zhí)行 Sat Oct 28 02:10:06 2000eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
ctime(將時(shí)間和日期以字符串格式表示) 相關(guān)函數(shù) time , asctime , gmtime , localtimeeHPLinux聯(lián)盟
表頭文件 #includeeHPLinux聯(lián)盟
定義函數(shù) char *ctime(const time_t *timep);eHPLinux聯(lián)盟
函數(shù)說(shuō)明 ctime()將參數(shù)timep所指的time_t結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法,然后將結(jié)果以字符串形態(tài)返回 。此函數(shù)已經(jīng)由時(shí)區(qū)轉(zhuǎn)換成當(dāng)?shù)貢r(shí)間,字符串格式為“Wed Jun 30 21 :49 :08 1993\n” 。若再調(diào)用相關(guān)的時(shí)間日期函數(shù),此字符串可能會(huì)被破壞 。eHPLinux聯(lián)盟
返回值 返回一字符串表示目前當(dāng)?shù)氐臅r(shí)間日期 。eHPLinux聯(lián)盟
范例 #includeeHPLinux聯(lián)盟
main()eHPLinux聯(lián)盟
{eHPLinux聯(lián)盟time_t timep;eHPLinux聯(lián)盟time (&timep);eHPLinux聯(lián)盟printf(“%s”,ctime(&timep));eHPLinux聯(lián)盟}eHPLinux聯(lián)盟
執(zhí)行 Sat Oct 28 10 : 12 : 05 2000eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
gettimeofday(取得目前的時(shí)間) 相關(guān)函數(shù) time,ctime , ftime,settimeofdayeHPLinux聯(lián)盟
表頭文件 #include eHPLinux聯(lián)盟
#include eHPLinux聯(lián)盟
定義函數(shù) int gettimeofday ( struct timeval * tv , struct timezone * tz )eHPLinux聯(lián)盟
函數(shù)說(shuō)明 gettimeofday()會(huì)把目前的時(shí)間有tv所指的結(jié)構(gòu)返回,當(dāng)?shù)貢r(shí)區(qū)的信息則放到tz所指的結(jié)構(gòu)中 。eHPLinux聯(lián)盟
timeval結(jié)構(gòu)定義為:eHPLinux聯(lián)盟
struct timeval{eHPLinux聯(lián)盟long tv_sec; /*秒*/eHPLinux聯(lián)盟long tv_usec; /*微秒*/eHPLinux聯(lián)盟};eHPLinux聯(lián)盟
timezone 結(jié)構(gòu)定義為:eHPLinux聯(lián)盟
struct timezone{eHPLinux聯(lián)盟int tz_minuteswest; /*和Greenwich 時(shí)間差了多少分鐘*/eHPLinux聯(lián)盟int tz_dsttime; /*日光節(jié)約時(shí)間的狀態(tài)*/eHPLinux聯(lián)盟};eHPLinux聯(lián)盟
上述兩個(gè)結(jié)構(gòu)都定義在/usr/include/sys/time.h 。tz_dsttime 所代表的狀態(tài)如下eHPLinux聯(lián)盟
DST_NONE /*不使用*/eHPLinux聯(lián)盟
DST_USA /*美國(guó)*/eHPLinux聯(lián)盟
DST_AUST /*澳洲*/eHPLinux聯(lián)盟
DST_WET /*西歐*/eHPLinux聯(lián)盟
DST_MET /*中歐*/eHPLinux聯(lián)盟
DST_EET /*東歐*/eHPLinux聯(lián)盟
DST_CAN /*加拿大*/eHPLinux聯(lián)盟
DST_GB /*大不列顛*/eHPLinux聯(lián)盟
DST_RUM /*羅馬尼亞*/eHPLinux聯(lián)盟
DST_TUR /*土耳其*/eHPLinux聯(lián)盟
DST_AUSTALT /*澳洲(1986年以后)*/eHPLinux聯(lián)盟
返回值 成功則返回0,失敗返回-1,錯(cuò)誤代碼存于errno 。附加說(shuō)明EFAULT指針tv和tz所指的內(nèi)存空間超出存取權(quán)限 。eHPLinux聯(lián)盟
范例 #includeeHPLinux聯(lián)盟
#includeeHPLinux聯(lián)盟
main(){eHPLinux聯(lián)盟struct timeval tv;eHPLinux聯(lián)盟struct timezone tz;eHPLinux聯(lián)盟gettimeofday (&tv , &tz);eHPLinux聯(lián)盟printf(“tv_sec; %d\n”, tv,.tv_sec) ;eHPLinux聯(lián)盟printf(“tv_usec; %d\n”,tv.tv_usec);eHPLinux聯(lián)盟printf(“tz_minuteswest; %d\n”, tz.tz_minuteswest);eHPLinux聯(lián)盟printf(“tz_dsttime, %d\n”,tz.tz_dsttime);eHPLinux聯(lián)盟}eHPLinux聯(lián)盟
執(zhí)行 tv_sec: 974857339eHPLinux聯(lián)盟
tv_usec:136996eHPLinux聯(lián)盟
tz_minuteswest:-540eHPLinux聯(lián)盟
tz_dsttime:0eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
gmtime(取得目前時(shí)間和日期) 相關(guān)函數(shù) time,asctime,ctime,localtimeeHPLinux聯(lián)盟
表頭文件 #includeeHPLinux聯(lián)盟
定義函數(shù) struct tm*gmtime(const time_t*timep);eHPLinux聯(lián)盟
函數(shù)說(shuō)明 gmtime()將參數(shù)timep 所指的time_t 結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法,然后將結(jié)果由結(jié)構(gòu)tm返回 。eHPLinux聯(lián)盟
結(jié)構(gòu)tm的定義為eHPLinux聯(lián)盟
struct tmeHPLinux聯(lián)盟
{eHPLinux聯(lián)盟int tm_sec;eHPLinux聯(lián)盟int tm_min;eHPLinux聯(lián)盟int tm_hour;eHPLinux聯(lián)盟int tm_mday;eHPLinux聯(lián)盟int tm_mon;eHPLinux聯(lián)盟int tm_year;eHPLinux聯(lián)盟int tm_wday;eHPLinux聯(lián)盟int tm_yday;eHPLinux聯(lián)盟int tm_isdst;eHPLinux聯(lián)盟};eHPLinux聯(lián)盟
int tm_sec 代表目前秒數(shù),正常范圍為0-59 , 但允許至61秒eHPLinux聯(lián)盟
int tm_min 代表目前分?jǐn)?shù),范圍0-59eHPLinux聯(lián)盟
int tm_hour 從午夜算起的時(shí)數(shù),范圍為0-23eHPLinux聯(lián)盟
int tm_mday 目前月份的日數(shù),范圍01-31eHPLinux聯(lián)盟
int tm_mon 代表目前月份,從一月算起 , 范圍從0-11eHPLinux聯(lián)盟
int tm_year 從1900 年算起至今的年數(shù)eHPLinux聯(lián)盟
int tm_wday 一星期的日數(shù) , 從星期一算起,范圍為0-6eHPLinux聯(lián)盟
int tm_yday 從今年1月1日算起至今的天數(shù),范圍為0-365eHPLinux聯(lián)盟
int tm_isdst 日光節(jié)約時(shí)間的旗標(biāo)eHPLinux聯(lián)盟
此函數(shù)返回的時(shí)間日期未經(jīng)時(shí)區(qū)轉(zhuǎn)換 , 而是UTC時(shí)間 。eHPLinux聯(lián)盟
返回值 返回結(jié)構(gòu)tm代表目前UTC 時(shí)間eHPLinux聯(lián)盟
范例 #include eHPLinux聯(lián)盟
main(){eHPLinux聯(lián)盟char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};eHPLinux聯(lián)盟
time_t timep;eHPLinux聯(lián)盟
struct tm *p;eHPLinux聯(lián)盟
time(&timep);eHPLinux聯(lián)盟
p=gmtime(&timep);eHPLinux聯(lián)盟
printf(“%d%d%d”,(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);eHPLinux聯(lián)盟
printf(“%s%d;%d;%d\n”, wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);eHPLinux聯(lián)盟
}eHPLinux聯(lián)盟
執(zhí)行 2000/10/28 Sat 8:15:38eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
localtime(取得當(dāng)?shù)啬壳皶r(shí)間和日期) 相關(guān)函數(shù) time, asctime, ctime, gmtimeeHPLinux聯(lián)盟
表頭文件 #includeeHPLinux聯(lián)盟
定義函數(shù) struct tm *localtime(const time_t * timep);eHPLinux聯(lián)盟
函數(shù)說(shuō)明 localtime()將參數(shù)timep所指的time_t結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法,然后將結(jié)果由結(jié)構(gòu)tm返回 。結(jié)構(gòu)tm的定義請(qǐng)參考gmtime() 。此函數(shù)返回的時(shí)間日期已經(jīng)轉(zhuǎn)換成當(dāng)?shù)貢r(shí)區(qū) 。eHPLinux聯(lián)盟
返回值 返回結(jié)構(gòu)tm代表目前的當(dāng)?shù)貢r(shí)間 。eHPLinux聯(lián)盟
范例 #includeeHPLinux聯(lián)盟
main(){eHPLinux聯(lián)盟char *wday[]={“Sun”,”Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sat”};eHPLinux聯(lián)盟
time_t timep;eHPLinux聯(lián)盟
struct tm *p;eHPLinux聯(lián)盟
time(&timep);eHPLinux聯(lián)盟
p=localtime(&timep); /*取得當(dāng)?shù)貢r(shí)間*/eHPLinux聯(lián)盟
printf (“%d%d%d ”, (1900+p->tm_year),( l+p->tm_mon), p->tm_mday);eHPLinux聯(lián)盟
printf(“%s%d:%d:%d\n”, wday[p->tm_wday],p->tm_hour, p->tm_min, p->tm_sec);eHPLinux聯(lián)盟
}eHPLinux聯(lián)盟
執(zhí)行 2000/10/28 Sat 11:12:22eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
mktime(將時(shí)間結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成經(jīng)過(guò)的秒數(shù)) 相關(guān)函數(shù) time , asctime,gmtime , localtimeeHPLinux聯(lián)盟
表頭文件 #includeeHPLinux聯(lián)盟
定義函數(shù) time_t mktime(strcut tm * timeptr);eHPLinux聯(lián)盟
函數(shù)說(shuō)明 mktime()用來(lái)將參數(shù)timeptr所指的tm結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成從公元1970年1月1日0時(shí)0分0 秒算起至今的UTC時(shí)間所經(jīng)過(guò)的秒數(shù) 。eHPLinux聯(lián)盟
返回值 返回經(jīng)過(guò)的秒數(shù) 。eHPLinux聯(lián)盟
范例 /* 用time()取得時(shí)間(秒數(shù)),利用localtime()eHPLinux聯(lián)盟
轉(zhuǎn)換成struct tm 再利用mktine()將struct tm轉(zhuǎn)換成原來(lái)的秒數(shù)*/eHPLinux聯(lián)盟
#includeeHPLinux聯(lián)盟
main()eHPLinux聯(lián)盟
{eHPLinux聯(lián)盟time_t timep;eHPLinux聯(lián)盟strcut tm *p;eHPLinux聯(lián)盟time(&timep);eHPLinux聯(lián)盟printf(“time() : %d \n”,timep);eHPLinux聯(lián)盟p=localtime(&timep);eHPLinux聯(lián)盟timep = mktime(p);eHPLinux聯(lián)盟printf(“time()->localtime()->mktime():%d\n”,timep);eHPLinux聯(lián)盟}eHPLinux聯(lián)盟
執(zhí)行 time():974943297eHPLinux聯(lián)盟
time()->localtime()->mktime():974943297eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
settimeofday(設(shè)置目前時(shí)間) 相關(guān)函數(shù) time,ctime,ftime,gettimeofdayeHPLinux聯(lián)盟
表頭文件 #includeeHPLinux聯(lián)盟
#includeeHPLinux聯(lián)盟
定義函數(shù) int settimeofday ( const struct timeval *tv,const struct timezone *tz);eHPLinux聯(lián)盟
函數(shù)說(shuō)明 settimeofday()會(huì)把目前時(shí)間設(shè)成由tv所指的結(jié)構(gòu)信息,當(dāng)?shù)貢r(shí)區(qū)信息則設(shè)成tz所指的結(jié)構(gòu) 。詳細(xì)的說(shuō)明請(qǐng)參考gettimeofday() 。注意,只有root權(quán)限才能使用此函數(shù)修改時(shí)間 。eHPLinux聯(lián)盟
返回值 成功則返回0,失敗返回-1 , 錯(cuò)誤代碼存于errno 。eHPLinux聯(lián)盟
錯(cuò)誤代碼 EPERM 并非由root權(quán)限調(diào)用settimeofday(),權(quán)限不夠 。eHPLinux聯(lián)盟
EINVAL 時(shí)區(qū)或某個(gè)數(shù)據(jù)是不正確的,無(wú)法正確設(shè)置時(shí)間 。eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
eHPLinux聯(lián)盟
time(取得目前的時(shí)間) 相關(guān)函數(shù) ctime,ftime,gettimeofdayeHPLinux聯(lián)盟
表頭文件 #includeeHPLinux聯(lián)盟
定義函數(shù) time_t time(time_t *t);eHPLinux聯(lián)盟
函數(shù)說(shuō)明 此函數(shù)會(huì)返回從公元1970年1月1日的UTC時(shí)間從0時(shí)0分0秒算起到現(xiàn)在所經(jīng)過(guò)的秒數(shù) 。如果t 并非空指針的話,此函數(shù)也會(huì)將返回值存到t指針?biāo)傅膬?nèi)存 。eHPLinux聯(lián)盟
返回值 成功則返回秒數(shù) , 失敗則返回((time_t)-1)值,錯(cuò)誤原因存于errno中 。eHPLinux聯(lián)盟
范例 #includeeHPLinux聯(lián)盟
mian()eHPLinux聯(lián)盟
{eHPLinux聯(lián)盟int seconds= time((time_t*)NULL);eHPLinux聯(lián)盟printf(“%d\n”,seconds);eHPLinux聯(lián)盟}eHPLinux聯(lián)盟
執(zhí)行 9.73E+08
c語(yǔ)言linux幫寫小段取當(dāng)前時(shí)間的codelinxu上有提供相應(yīng)的c語(yǔ)言的接口比如time函數(shù)使用time函數(shù)可以獲取一個(gè)時(shí)間戳該時(shí)間戳是1870年1月1日0:0:0至現(xiàn)在的秒數(shù)然后我們可以使用linux提供的一些轉(zhuǎn)換接口將其轉(zhuǎn)換為時(shí)分秒的格式比如ctime或者也可以使用gmtime或者localtime將其轉(zhuǎn)換為struct tm結(jié)構(gòu)體的數(shù)據(jù)我們同樣也可以使用gettimeofday函數(shù)來(lái)獲取時(shí)間比如一個(gè)簡(jiǎn)單的代碼實(shí)現(xiàn)如下#include #include #include int main(int argc,char **argv){time_t t;struct tm *m;if((t=time(NULL)) == (time_t)-1){perror("time");return -1;}m=localtime(&t);printf("%.2d:%.2d:%.2d\n",m->tm_hour,m->tm_min,m->tm_sec);return 0;}
gettimeofday()和time()的區(qū)別是什么?gettimeofday()和time()的區(qū)別就是 , time(); 當(dāng)前時(shí)間的UNIX時(shí)間戳,也就是從有UNIX開始到現(xiàn)在的秒數(shù) 。gettimeofday(); 內(nèi)置函數(shù)生成的數(shù)組 。一、gettimeofday是計(jì)算機(jī)函數(shù),使用C語(yǔ)言編寫程序需要獲得當(dāng)前精確時(shí)間(1970年1月1日到現(xiàn)在的時(shí)間),或者為執(zhí)行計(jì)時(shí),可以使用gettimeofday()函數(shù) 。二、#include int gettimeofday(struct timeval*tv, struct timezone *tz);其參數(shù)tv是保存獲取時(shí)間結(jié)果的結(jié)構(gòu)體,參數(shù)tz用于保存時(shí)區(qū)結(jié)果:struct timezone{int tz_minuteswest;/*格林威治時(shí)間往西方的時(shí)差*/int tz_dsttime;/*DST 時(shí)間的修正方式*/}timezone 參數(shù)若不使用則傳入NULL即可 。三、本函數(shù)是 gettimeofday(2) 的接口 。返回一個(gè)關(guān)聯(lián)數(shù)組,包含有系統(tǒng)調(diào)用返回的數(shù)據(jù) 。自 PHP 5.1.0 起有個(gè)可選參數(shù) return_float,當(dāng)其設(shè)為 TRUE 時(shí),gettimeofday() 會(huì)返回一個(gè)浮點(diǎn)數(shù) 。四、time() 是指返回自 Unix 紀(jì)元(January 1 1970 00:00:00 GMT)起的當(dāng)前時(shí)間的秒數(shù)的函數(shù) , 主要用來(lái)獲取當(dāng)前的系統(tǒng)時(shí)間,返回的結(jié)果是一個(gè)time_t類型 。五、其值表示從UTC(Coordinated Universal Time)時(shí)間1970年1月1日00:00:00(稱為UNIX系統(tǒng)的Epoch時(shí)間)到當(dāng)前時(shí)刻的秒數(shù) 。然后調(diào)用localtime函數(shù)將time_t所表示的UTC時(shí)間轉(zhuǎn)換為本地時(shí)間(我們是+8區(qū),比UTC多8個(gè)小時(shí))并轉(zhuǎn)成struct tm類型,該類型的各數(shù)據(jù)成員分別表示年月日時(shí)分秒 。
C語(yǔ)言時(shí)間,怎么把time_t類型的時(shí)間 , 轉(zhuǎn)化成年、月、日、時(shí)、分、秒呢?可以使用gmtime函數(shù)或localtime函數(shù)將time_t類型的時(shí)間日期轉(zhuǎn)換為struct tm類型(年、月、日、時(shí)、分、秒) 。
使用time函數(shù)返回的是一個(gè)long值,該值對(duì)用戶的意義不大,一般不能根據(jù)其值確定具體的年、月、日等數(shù)據(jù) 。gmtime函數(shù)可以方便的對(duì)time_t類型數(shù)據(jù)進(jìn)行轉(zhuǎn)換,將其轉(zhuǎn)換為tm結(jié)構(gòu)的數(shù)據(jù)方便數(shù)據(jù)閱讀 。gmtime函數(shù)的原型如下:struct tm *gmtime(time_t *timep);localtime函數(shù)的原型如下:struct tm *localtime(time_t *timep);將參數(shù)timep所指的time_t類型信息轉(zhuǎn)換成實(shí)際所使用的時(shí)間日期表示方法,將結(jié)果返回到結(jié)構(gòu)tm結(jié)構(gòu)類型的變量 。gmtime函數(shù)用來(lái)存放實(shí)際日期時(shí)間的結(jié)構(gòu)變量是靜態(tài)分配的 , 每次調(diào)用gmtime函數(shù)都將重寫該結(jié)構(gòu)變量 。如果希望保存結(jié)構(gòu)變量中的內(nèi)容,必須將其復(fù)制到tm結(jié)構(gòu)的另一個(gè)變量中 。gmtime函數(shù)與localtime函數(shù)的區(qū)別:gmtime函數(shù)返回的時(shí)間日期未經(jīng)時(shí)區(qū)轉(zhuǎn)換,是UTC時(shí)間(又稱為世界時(shí)間 , 即格林尼治時(shí)間) 。localtime函數(shù)返回當(dāng)前時(shí)區(qū)的時(shí)間 。
轉(zhuǎn)換日期時(shí)間表示形式time_t類型轉(zhuǎn)換為struct tm類型示例:
#include
#include
int main()
{
char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};/*指針字符數(shù)組*/time_t t;
struct tm *p;
t=time(NULL);/*獲取從1970年1月1日零時(shí)到現(xiàn)在的秒數(shù) , 保存到變量t中*/p=gmtime(&t); /*變量t的值轉(zhuǎn)換為實(shí)際日期時(shí)間的表示格式*/
printf("%d年%02d月%02d日",(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);
printf(" %s ", wday[p->tm_wday]);
printf("%02d:%02d:%02d\n", p->tm_hour, p->tm_min, p->tm_sec);
return 0;
}
注意:p=gmtime(&t);此行若改為p=localtime(&t);則返回當(dāng)前時(shí)區(qū)的時(shí)間 。
如何獲得比localtime更大的時(shí)間范圍typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *LPSYSTEMTIME;
FILETIME和SYSTEMTIME都只是記錄時(shí)間的結(jié)構(gòu) 。
GetLocalTime能夠得到本地電腦設(shè)置時(shí)區(qū)的時(shí)間,得到的類型是SYSTEMTIME的類型 。
C語(yǔ)言功能:獲取當(dāng)前日期時(shí)間#include
#include
int main()
{
time_t timep;
struct tm *p;
time(&timep);
p = localtime(&timep); //此函數(shù)獲得的tm結(jié)構(gòu)體的時(shí)間,是已經(jīng)進(jìn)行過(guò)時(shí)區(qū)轉(zhuǎn)化為本地時(shí)間
printf("%d%02d%02d%02d%02d%02d\n", 1900+p->tm_year, 1+p->tm_mon, p->tm_mday, p->tm_hour,p->tm_min, p->tm_sec);
return 0;
}
C語(yǔ)言中取得當(dāng)?shù)貢r(shí)間范圍問(wèn)題#include
#include
int main( void )
{
time_t t = time(0);
char tmp[64];
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );
puts( tmp );
return 0;
}
size_t strftime(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr);
根據(jù)格式字符串生成字符串 。
struct tm *localtime(const time_t *timer);
取得當(dāng)?shù)貢r(shí)間,localtime獲取的結(jié)果由結(jié)構(gòu)tm返回
返回的字符串可以依下列的格式而定:
%a 星期幾的縮寫 。Eg:Tue
%A 星期幾的全名 。Eg: Tuesday
%b 月份名稱的縮寫 。
%B 月份名稱的全名 。
%c 本地端日期時(shí)間較佳表示字符串 。
%d 用數(shù)字表示本月的第幾天 (范圍為 00 至 31) 。日期
%H 用 24 小時(shí)制數(shù)字表示小時(shí)數(shù) (范圍為 00 至 23) 。
%I 用 12 小時(shí)制數(shù)字表示小時(shí)數(shù) (范圍為 01 至 12) 。
%j 以數(shù)字表示當(dāng)年度的第幾天 (范圍為 001 至 366) 。
%m 月份的數(shù)字 (范圍由 1 至 12) 。
%M 分鐘 。
%p 以 ''AM'' 或 ''PM'' 表示本地端時(shí)間 。
%S 秒數(shù) 。
%U 數(shù)字表示為本年度的第幾周,第一個(gè)星期由第一個(gè)周日開始 。
%W 數(shù)字表示為本年度的第幾周,第一個(gè)星期由第一個(gè)周一開始 。
%w 用數(shù)字表示本周的第幾天 ( 0 為周日) 。
%x 不含時(shí)間的日期表示法 。
%X 不含日期的時(shí)間表示法 。Eg: 15:26:30
%y 二位數(shù)字表示年份 (范圍由 00 至 99) 。
%Y 完整的年份數(shù)字表示 , 即四位數(shù) 。Eg:2008
%Z(%z) 時(shí)區(qū)或名稱縮寫 。Eg:中國(guó)標(biāo)準(zhǔn)時(shí)間
%% % 字符 。
//方案二 優(yōu)點(diǎn):能精確到毫秒級(jí);缺點(diǎn):使用了windows API
#include
#include
int main( void )
{
SYSTEMTIME sys;
GetLocalTime( &sys );
printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek);
return 0;
}
//方案三,優(yōu)點(diǎn):利用系統(tǒng)函數(shù),還能修改系統(tǒng)時(shí)間
//此文件必須是c++文件
#include
#include
using namespace std;
void main()
{
system("time");
}
//方案四,將當(dāng)前時(shí)間折算為秒級(jí),再通過(guò)相應(yīng)的時(shí)間換算即可
//此文件必須是c++文件
#include
#include
using namespace std;
int main()
{
time_t now_time;
now_time = time(NULL);
cout<<now_time;
return 0;
}
- 動(dòng)漫人物簡(jiǎn)筆畫
- 衣服發(fā)黃怎么洗才能發(fā)白 你值得了解的方法
- 奶茶店制冰機(jī)價(jià)格
- 如何快速了解一個(gè)人的三觀 怎么才能了解一個(gè)人的三觀
- 如何了解一個(gè)人的三觀 怎么快速了解一個(gè)人的三觀
- 怎么清理蘋果手機(jī)聽筒的灰塵 iphone聽筒進(jìn)灰塵了解決方法
- 無(wú)法刪除文件
- 辦理5萬(wàn)額度信用卡
- 古典音樂入門
- 砂漿王起到什么作用 帶你了解砂漿王的作用及危害
