C语言如何获取电脑实时时间

用什么函数可以获取电脑实时间,要求显示月日时分。如果要写入文件,那么变量类型是什么?... 用什么函数可以获取电脑实时间,要求显示月日时分。如果要写入文件,那么变量 类型 是什么? 展开
 我来答
风若远去何人留
2017-05-11 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部

需要利用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为一个结构体,包含了年月日时分秒等信息。

这种结构是适合用来输出的。

二、参考代码:

#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;
}

注意事项:

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

依秀芳盍丙
2010-06-12 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:33%
帮助的人:1243万
展开全部
#include<stdio.h>
#include<time.h>
intmain()
{
time_tnowtime;
structtm*timeinfo;
time(&nowtime);
timeinfo=localtime(&nowtime);
intyear,month,day;
year=timeinfo->tm_year+1900;
month=timeinfo->tm_mon+1;
day=timeinfo->tm_mday;
printf("%d%d%d\n",year,month,day);
return0;
}
structtm--时间结构,time.h定义如下:
inttm_sec;
inttm_min;
inttm_hour;
inttm_mday;
inttm_mon;
inttm_year;
inttm_wday;
inttm_yday;
inttm_isdst;
tm_year从1900年计算,所以要加1900,
月tm_mon,从0计算,所以要加1
time(&nowtime);获取时间
localtime(&nowtime);转为当地时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
著述的鸭子非了
2010-06-09 · TA获得超过224个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:173万
展开全部
HRESULT GetTime( FILETIME *pfCreationTime
);

typedef struct STRUCT tagFILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L_o_o_n_i_e
2010-06-09 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5225万
展开全部
#include <stdio.h>
#include <time.h>

int main ()
{
time_t rawtime;
struct tm * timeinfo;
char timE [80];
time ( &rawtime );
timeinfo = localtime ( &rawtime );
// strftime ( timE,80,"%Y-%m-%d %I:%M:%S",timeinfo);
strftime ( timE,80,"%m-%d %I:%M",timeinfo);
printf ("%s", timE);
return 0;
}

用 strftime, 填入不同的格式可以输出不同的项和形式,例如英文月份或数字月份度能做到。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式