c获取系统时间及time time_t和gmtime

#define _CRT_SECURE_NO_WARNINGS


#include <time.h>
#include<stdio.h>
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  \n", (1900+p->tm_year), (1+p->tm_mon), p->tm_mday);
printf("%s   %d :%d :%d\n", wday[p->tm_wday], 8+p->tm_hour, p->tm_min, p->tm_sec);

}


time()函数,返回一个从1970年1月1日 00:00:00到现在的秒数
time_t time(time_t * t); 当参数为NULL时直接返回秒数,当然也会将该值写入t指针指向的地址
gmtime();将time函数得到的秒数转换成一个UTC时间的结构体struct tm,

  1. struct  tm{  
  2.        int tm_sec;  
  3.        int tm_min;  
  4.        int tm_hour;  
  5.        int tm_mday;  
  6.        int tm_mon;  
  7.        int tm_year;  
  8.        int tm_wday;  
  9.        int tm_yday;  
  10.        int tm_isdst;  
  11.      }; 

UTC时间转换成 北京时间 的话,需要在年数上加1900,月份上加1,小时数加上8
当然同类型的函数还有localtime();得到本地时间,该函数同gm time函数 唯一区别是,在转换小时数不需要加上8了


关于time_t (转子百度知道):

time_t实际上就是长整型long int;
如假包换!!
他用来保存从1970年1月1日0时0分0秒到现在时刻的秒数!
用time()这个函数获取!

对time_t数据类型的值来说,它所表示的时间不能晚于2038年1月18日19时14分07秒。
Visual C++里有个__time64_t数据类型来保存日历时间,并通过_time64()函数来获得日历时间,这样就可以通过该数据类型保存3001年1月1日0时0分0秒之前的时间。

附:
time_t包含在time.h里
#ifndef __TIME_T
#define __TIME_T    
typedef long     time_t;   
 /* 时间值time_t 为长整型long int(这里缺省类型就是int哈,可以省略不写)的别名*/
#endif

time_t : 先定义一个time_他的变量,然后把变量的地址传给time_t函数,函数返回距离1970.1.1的秒数,返回的结果存在该变量中。即等价于

 time_t  a   

a=time(&timep);
p = gmtime(&a);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值