问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用C语言获取当前系统时间?620

发布网友 发布时间:2023-11-09 23:58

我来回答

5个回答

热心网友 时间:2024-06-08 14:27

需要利用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。

热心网友 时间:2024-06-08 14:27

这是一个获取时间的,并且写入文件的函数。你琢磨下吧。
void
time()
{
file
*tp;
tp=fopen("系统使用记录.txt","a");
time_t
t;
//struct
tm
*gmt,
*area;
struct
tm
*area;
t
=
time(null);
area
=
localtime(&t);
printf("当前系统时间:
%s",
asctime(area));
fprintf(tp,"
%s",asctime(area));
fclose(tp);
//gmt
=
gmtime(&t);
//printf("gmt
is:
%s",
asctime(gmt));
}

热心网友 时间:2024-06-08 14:28

一般使用函数"
text="点击实体词"
target="_blank"
href="http://www.haosou.com/s?q=time%E5%87%BD%E6%95%B0&ie=utf-8&src=wenda_link">time函数,Windows下可以使用GetTickCount或timeGetTime函数获取系统时间。

热心网友 时间:2024-06-08 14:28

Example

/* TIMES.C illustrates various time and date functions including:
* time _ftime ctime asctime
* localtime gmtime mktime _tzset
* _strtime _strdate strftime
*
* Also the global variable:
* _tzname
*/

#include <time.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/timeb.h>
#include <string.h>

void main()
{
char tmpbuf[128], ampm[] = "AM";
time_t ltime;
struct _timeb tstruct;
struct tm *today, *gmt, xmas = { 0, 0, 12, 25, 11, 93 };

/* Set time zone from TZ environment variable. If TZ is not set,
* the operating system is queried to obtain the default value
* for the variable.
*/
_tzset();

/* Display operating system-style date and time. */
_strtime( tmpbuf );
printf( "OS time:\t\t\t\t%s\n", tmpbuf );
_strdate( tmpbuf );
printf( "OS date:\t\t\t\t%s\n", tmpbuf );

/* Get UNIX-style time and display as number and string. */
time( <ime );
printf( "Time in seconds since UTC 1/1/70:\t%ld\n", ltime );
printf( "UNIX time and date:\t\t\t%s", ctime( <ime ) );

/* Display UTC. */
gmt = gmtime( <ime );
printf( "Coordinated universal time:\t\t%s", asctime( gmt ) );

/* Convert to time structure and adjust for PM if necessary. */
today = localtime( <ime );
if( today->tm_hour > 12 )
{
strcpy( ampm, "PM" );
today->tm_hour -= 12;
}
if( today->tm_hour == 0 ) /* Adjust if midnight hour. */
today->tm_hour = 12;

/* Note how pointer addition is used to skip the first 11
* characters and printf is used to trim off terminating
* characters.
*/
printf( "12-hour time:\t\t\t\t%.8s %s\n",
asctime( today ) + 11, ampm );

/* Print additional time information. */
_ftime( &tstruct );
printf( "Plus milliseconds:\t\t\t%u\n", tstruct.millitm );
printf( "Zone difference in seconds from UTC:\t%u\n",
tstruct.timezone );
printf( "Time zone name:\t\t\t\t%s\n", _tzname[0] );
printf( "Daylight savings:\t\t\t%s\n",
tstruct.dstflag ? "YES" : "NO" );

/* Make time for noon on Christmas, 1993. */
if( mktime( &xmas ) != (time_t)-1 )
printf( "Christmas\t\t\t\t%s\n", asctime( &xmas ) );

/* Use time structure to build a customized time string. */
today = localtime( <ime );

/* Use strftime to build a customized time string. */
strftime( tmpbuf, 128,
"Today is %A, day %d of %B in the year %Y.\n", today );
printf( tmpbuf );
}

Output

OS time: 21:51:03
OS date: 05/03/94
Time in seconds since UTC 1/1/70: 768027063
UNIX time and date: Tue May 03 21:51:03 1994
Coordinated universal time: Wed May 04 04:51:03 1994
12-hour time: 09:51:03 PM
Plus milliseconds: 279
Zone difference in seconds from UTC: 480
Time zone name:
Daylight savings: YES
Christmas Sat Dec 25 12:00:00 1993

Today is Tuesday, day 03 of May in the year 1994.

热心网友 时间:2024-06-08 14:29

lt->tm_year+1900, lt->tm_mon+1
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...乱弹flash游戏广告(少儿不宜类)的病毒到底怎么杀?? 手机老是出现少儿不宜的软件 老是宣传 还让下载 恢复出厂设置也不 钢材商贸公司怎么取名好听 钢材贸易公司起名字大全免费 您好,我现在20多岁,有一个演员梦,我不怕吃苦,就是想演戏,可是我性格有... ...我想当演员,因为我的梦想也是做一名演员,我相信我自己能做好_百度知... 我是淘宝新手卖家,有供应商主动邀请我分销他的产品,这其中有什么不妥... 淘宝旺旺里有个阿里巴巴供应商说交900元帮我运营店铺,说能赚钱,有企业... 初中仁爱版英语总复习练习册多少钱 英语八年级下册复习(仁爱版本) 桐庐大奇山门票是多少? 1,5匹空调怎么折 ...就只是看见地上堆了很厚的雪。后来又梦见自己去哪个地方,然_百度... 错过了双11,双12要买张床垫,有什么耐用点的床垫品牌吗? 十一岁女孩学芭蕾可以吗? 双十二活动打算买张床垫,有没有3D面料和乳胶材质的? OPPOr11手机老是弹出这个页面关了吧又自动打开,智能保护那里关了也没... 长期有口气吃什么药好?1 口臭的治疗15 学狗爬有什么好处啊 哪个排尘离心风机的型号好? 小额贷款11个利息一起贷款25000 利息高的吓人 平均 每个app一个一个月... 排尘离心风机什么型号性价比高? 谁可以借我25000,我过年的时候还30000 苏州万达广场具体信息? 啊,百里三峡,好一幅百里山水画!仿写感叹句20 江西富丽华家居发展有限公司怎么样? 江西木心家居有限公司怎么样?2 挂式空调怎样折装?1 我是大海水命叫张洪涛怎么样 女儿的婚姻出现危机时,作为父母应该怎么帮助?6 平安产险唐山怎么关注 c语言请教 如何获得两天后的日期 肝癌右肝叶切除,现在肝功能各项指标正常,这种情况还会复发吗? 怎么把哔哩哔哩下载的视频导出来? 儿子和儿媳妇想离婚做父母的该怎么办?2 如果孩子婚姻发生矛盾,当父母的怎样去说?2 罗汉鱼水墨画4 什么是浅降山水画3 公务员拒不下沉社区什么处分 宁安如梦沈玠的配音是谁 ...粒子群、模拟退火相比于普通的蒙特卡洛算法有什么优势?他们相互的优... 用是什么意思? 流水别墅的室内设计师是谁 肝脏的功能很强大,你知道哪些情况是肝脏癌变的信号吗? cad查找替换快捷键命令,cad如何查找替换文字11 matlab中的替换命令的快捷键是什么?比如说,我要把程序后...23 lol手游尽心竭力怎么触发? 泉州丰泽区新华都里面有溜冰场吗 穿越火线,怎么4级鬼跳? 作为父母,我们应该如何去对待儿女的婚姻大事?4