C语言获取系统时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言获取系统时间相关的知识,希望对你有一定的参考价值。

C语言如何获取系统时间,如题……

需要利用C语言的时间函数time和localtime,具体说明如下:
一、函数接口介绍:
1、time函数。
形式为time_t time (time_t *__timer);
其中time_t为time.h定义的结构体,一般为长整型。
这个函数会获取当前时间,并返回。 如果参数__timer非空,会存储相同值到__timer指向的内存中。
time函数返回的为unix时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
由于是秒作为单位的,所以这并不是习惯上的时间,要转为习惯上的年月日时间形式就需要另外一个函数了。
2、localtime函数。
形式为struct tm *localtime (const time_t *__timer);
其中tm为一个结构体,包含了年月日时分秒等信息。
这种结构是适合用来输出的。
参考技术A #include <stdio.h>
#include <time.h>

void main ()

time_t rawtime;
struct tm * timeinfo;

time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "\007The current date/time is: %s", asctime (timeinfo) );

exit(0);


=================
#include <time.h> -- 必须的时间函数头文件
time_t -- 时间类型(time.h 定义)
struct tm -- 时间结构,time.h 定义如下:
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;

time ( &rawtime ); -- 获取时间,以秒计,从1970年1月一日起算,存于rawtime
localtime ( &rawtime ); -- 转为当地时间,tm 时间结构
asctime ()-- 转为标准ASCII时间格式:
星期 月 日 时:分:秒 年
=========================================
你要的格式可这样输出:
printf ( "%4d-%02d-%02d %02d:%02d:%02d\n",1900+timeinfo->tm_year, 1+timeinfo->tm_mon,
timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);

就是直接打印tm,tm_year 从1900年计算,所以要加1900,
月tm_mon,从0计算,所以要加1
其它你一目了然啦。

参考资料:引用其他网友回答.

参考技术B #include <stdio.h>
#include <time.h>
void main ()
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "\007The current date/time is: %s", asctime (timeinfo) );
exit(0);

=================
#include <time.h> -- 必须的时间函数头文件
time_t -- 时间类型(time.h 定义)
struct tm -- 时间结构,
time.h 定义如下:
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;
time ( &rawtime ); -- 获取时间,
以秒计,从1970年1月一日起算,存于rawtime localtime ( &rawtime ); -- 转为当地时间,tm 时间结构
asctime ()-- 转为标准ASCII时间格式: 星期 月 日 时:分:秒 年 =========================================
你要的格式可这样输出: printf ( "M-d-d d:d:d\n",1900+timeinfo->tm_year, 1+timeinfo->tm_mon, timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec); 就是直接打印tm,tm_year 从1900年计算,所以要加1900, 月tm_mon,从0计算,所以要加1 其它你一目了然啦。
参考技术C 一般使用time函数,Windows下可以使用GetTickCount或timeGetTime函数获取系统时间本回答被提问者采纳 参考技术D #include <stdio.h>
#include <time.h>
main()
struct tm * tmptr;
time_t secnow;
time(&secnow);
tmptr = localtime(&secnow);
int hour1,min1;
hour1 = tmptr->tm_hour;
min1 = tmptr->tm_min;
printf("The time is %02d:%02d",hour1,min1);
getch();

你可以看一下time.h里面的定义。这里给你时和分

C语言中 如何获取系统时间

各位高手帮手编写一个程序:
要求;用C语言编写,获取系统时间 年 月 日 只要 年月日 小时 分钟秒 不要!

并把 获取的 年月日 分别保存在 定义好的三个 int型 变量中!
并显示出来!
回复 zxl0714:
可以详细点 加点说明可以吗?
我看不明啊!!!

#include<time.h>

int main()

time_t timep;

struct tm *p;

time (&timep);

p=gmtime(&timep);

printf("%d\\n",p->tm_sec); /*获取当前秒*/

printf("%d\\n",p->tm_min); /*获取当前分*/

printf("%d\\n",8+p->tm_hour);/*获取当前时,这里获取西方的时间,刚好相差八个小时*/

printf("%d\\n",p->tm_mday);/*获取当前月份日数,范围是1-31*/

printf("%d\\n",1+p->tm_mon);/*获取当前月份,范围是0-11,所以要加1*/

printf("%d\\n",1900+p->tm_year);/*获取当前年份,从1900开始,所以要加1900*/

printf("%d\\n",p->tm_yday); /*从今年1月1日算起至今的天数,范围为0-365*/

拓展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:C语言_百度百科

参考技术A

#include <stdio.h>

#include <time.h>

int main ()

time_t t

struct tm * lt;    time (&t);//获取Unix时间戳。    

lt = localtime (&t);//转为时间结构。    

printf ( "%d/%d/%d %d:%d:%d\\n",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);//输出结果    

return 0;

扩展资料

#include -- 必须的时间函数头文件 

time_t -- 时间类型(time.h 定义是typedef long time_t; 追根溯源,time_t是long)

struct tm -- 时间结构,time.h 定义如下: 

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; 

time ( &rawtime ); -- 获取时间,以秒计,从1970年1月一日起算,存于rawtime 

localtime ( &rawtime ); -- 转为当地时间,tm 时间结构 

asctime ()-- 转为标准ASCII时间格式: 

星期 月 日 时:分:秒 年

参考资料:百度百科 time函数

参考技术B

#include<time.h>

int main()

time_t timep;

struct tm *p;

time (&timep);

p=gmtime(&timep);

printf("%d\\n",p->tm_sec); /*获取当前秒*/

printf("%d\\n",p->tm_min); /*获取当前分*/

printf("%d\\n",8+p->tm_hour);/*获取当前时,这里获取西方的时间,刚好相差八个小时*/

printf("%d\\n",p->tm_mday);/*获取当前月份日数,范围是1-31*/

printf("%d\\n",1+p->tm_mon);/*获取当前月份,范围是0-11,所以要加1*/

printf("%d\\n",1900+p->tm_year);/*获取当前年份,从1900开始,所以要加1900*/

printf("%d\\n",p->tm_yday); /*从今年1月1日算起至今的天数,范围为0-365*/

扩展链接

使用其他的方法获取系统时间:

注意事项:

struct tm中的tm_year 值为实际年减去1900, 所以输出的时候要是lt->tm_year+1900。

参考技术C

获取系统的时间需要借助time()函数,具体的代码如下:

#include <stdio.h>

#include <time.h> 

struct mydate 

unsigned year;

unsigned month;

unsigned day;

struct mydate Today( ) 

struct mydate today;

time_t rawtime;

struct tm *timeinfo;

time ( &rawtime );

timeinfo = localtime(&rawtime);

today.year = timeinfo->tm_year + 1900;

today.month = timeinfo->tm_mon + 1;

today.day = timeinfo->tm_mday;

return today;

int main( ) 

struct mydate today = Today(  )

printf("%4d/%02d/%02d\\n",today.year,today.month,today.day);

return 0;

扩展资料

使用其他的方法获取系统时间:

#include <stdio.h>

#include <time.h>

int main (  )

time_t t;

struct tm * lt;

time (&t);                       //获取Unix时间戳。

lt = localtime (&t);         //转为时间结构。

printf ( "%d/%d/%d %d:%d:%d\\n",lt->tm_year+1900, lt->tm_mon,,lt->tm_mday,,lt->tm_hour, lt->tm_min,,lt->tm_sec);            //输出结果

return 0;

参考技术D

方法一,#include<time.h>

int main()

time_t timep;

struct tm *p;

time (&timep);

p=gmtime(&timep);

printf("%d\\n",p->tm_sec); /*获取当前秒*/

printf("%d\\n",p->tm_min); /*获取当前分*/

printf("%d\\n",8+p->tm_hour);/*获取当前时,这里获取西方的时间,刚好相差八个小时*/

printf("%d\\n",p->tm_mday);/*获取当前月份日数,范围是1-31*/

printf("%d\\n",1+p->tm_mon);/*获取当前月份,范围是0-11,所以要加1*/

printf("%d\\n",1900+p->tm_year);/*获取当前年份,从1900开始,所以要加1900*/

printf("%d\\n",p->tm_yday); /*从今年1月1日算起至今的天数,范围为0-365*/

方法二.#include <stdio.h>

#include <time.h>

int main ()

time_t t

struct tm * lt;    time (&t);//获取Unix时间戳。    

lt = localtime (&t);//转为时间结构。    

printf ( "%d/%d/%d %d:%d:%d\\n",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);//输出结果    

return 0;


扩展资料

#include -- 必须的时间函数头文件 

time_t -- 时间类型(time.h 定义是typedef long time_t; 追根溯源,time_t是long)

struct tm -- 时间结构,time.h 定义如下: 

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; 

time ( &rawtime ); -- 获取时间,以秒计,从1970年1月一日起算,存于rawtime 

localtime ( &rawtime ); -- 转为当地时间,tm 时间结构 

asctime ()-- 转为标准ASCII时间格式: 

星期 月 日 时:分:秒 年

参考资料来源:百度百科 time函数

以上是关于C语言获取系统时间的主要内容,如果未能解决你的问题,请参考以下文章

C语言获取系统当前时间转化成时间字符串

C语言获取系统时间的问题

C语言中 如何获取系统时间

如何用c语言获取当前系统时间

C语言-获取系统时间

C语言获取系统当前时间