获取C中的当前时间

我想获得我系统的当前时间。 为此,我在C中使用下面的代码:

time_t now; struct tm *mytime = localtime(&now); if ( strftime(buffer, sizeof buffer, "%X", mytime) ) { printf("time1 = \"%s\"\n", buffer); } 

问题是这个代码给了一些随机的时间。 而且,随机时间每次都是不同的。 我想要我的系统的当前时间。

复制粘贴从这里 :

 /* localtime example */ #include <stdio.h> #include <time.h> int main () { time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); printf ( "Current local time and date: %s", asctime (timeinfo) ); return 0; } 

(只需在main()参数列表中添加“void”以便在C中工作)

初始化你nowvariables。

 time_t now = time(0); // Get the system time 

localtime函数用于将传递的time_t的时间值转换为struct tm ,但实际上并不检索系统时间。

简单的方法 :

 #include <time.h> #include <stdio.h> int main(void) { time_t mytime; mytime = time(NULL); printf("Current Time : %s", ctime(&mytime)); return 0; } 

为了扩展上面的@mingos的答案,我写了下面的函数来把我的时间格式化为一个特定的格式([dd mm yyyy hh:mm:ss])。

 // Store the formatted string of time in the output void format_time(char *output){ time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); sprintf(output, "[%d %d %d %d:%d:%d]",timeinfo->tm_mday, timeinfo->tm_mon + 1, timeinfo->tm_year + 1900, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec); } 

关于struct tm更多信息可以在这里find。

 #include<stdio.h> #include<time.h> void main() { time_t t; time(&t); printf("\n current time is : %s",ctime(&t)); } 

家伙,你可以使用此function获取当前的本地时间。 如果你想gmtime然后使用gmtime函数而不是本地时间。 干杯

 time_t my_time; struct tm * timeinfo; time (&my_time); timeinfo = localtime (&my_time); CCLog("year->%d",timeinfo->tm_year+1900); CCLog("month->%d",timeinfo->tm_mon+1); CCLog("date->%d",timeinfo->tm_mday); CCLog("hour->%d",timeinfo->tm_hour); CCLog("minutes->%d",timeinfo->tm_min); CCLog("seconds->%d",timeinfo->tm_sec); 
 #include <stdio.h> #include <time.h> void main() { time_t t; time(&t); clrscr(); printf("Today's date and time : %s",ctime(&t)); getch(); } 

家伙我有一个新的方式获得系统时间。 虽然它很长,而且充满了愚蠢的作品,但通过这种方式,你可以获得整数格式的系统时间。

 #include <stdio.h> #include <stdlib.h> int main() { FILE *fp; char hc1,hc2,mc1,mc2; int hi1,hi2,mi1,mi2,hour,minute; system("echo %time% >time.txt"); fp=fopen("time.txt","r"); if(fp==NULL) exit(1) ; hc1=fgetc(fp); hc2=fgetc(fp); fgetc(fp); mc1=fgetc(fp); mc2=fgetc(fp); fclose(fp); remove("time.txt"); hi1=hc1; hi2=hc2; mi1=mc1; mi2=mc2; hi1-=48; hi2-=48; mi1-=48; mi2-=48; hour=hi1*10+hi2; minute=mi1*10+mi2; printf("Current time is %d:%d\n",hour,minute); return 0; }