zoukankan      html  css  js  c++  java
  • struct tm>time() localtime() gmtime()

    struct tm {
    int tm_sec; /*代表目前秒数,正常范围为0-59,但允许至61秒 */
    int tm_min; /*代表目前分数,范围0-59*/
    int tm_hour; /*从午夜算起的时数,范围为0-23*/
    int tm_mday; /*目前月份的日数,范围01-31*/
    int tm_mon; /*代表目前月份,从一月算起,范围从0-11*/
    int tm_year; /*从1900 年算起至今的年数*/
    int tm_wday; /*一星期的日数,从星期一算起,范围为0-6 */
    int tm_yday; /*从今年1月1日算起至今的天数,范围为0-365*/
    int tm_isdst; /*日光节约时间的旗标*/
    };

    time()

    编程语言C语言中的函数。
    头文件:time.h
    函数原型:time_t time(time_t * timer)
    功能: 获取当前的系统时间返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime将time_t所表示的CUT时间转换为本地时间(我们是+8区,比CUT多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。
    补充说明:time函数的原型也可以理解为 long time(long *tloc),即返回一个long型整数。因为在time.h这个头文件中time_t实际上就是:
    #ifndef _TIME_T_DEFINED
    typedef long time_t; /* time value */
    #define _TIME_T_DEFINED /* avoid multiple defines of time_t */
    #endif
    即long。
    #include <stdio.h>
    #include <stddef.h>
    #include <time.h>
    int main(void)
    {
    time_t timer;//time_t就是long int 类型
    struct tm *tblock;
    timer = time(NULL);//这一句也可以改成time(&timer);
    tblock = localtime(&timer);
    printf("Local time is: %s\n",asctime(tblock));
    return 0;
    }
     
    localtime()
    功 能: 把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为日历时间 。
    说明:此函数获得的tm结构体的时间,是已经进行过时区转化为本地时间
    用 法: struct tm *localtime(const time_t *clock);
    返回值:返回指向tm 结构体指针.tm结构体是time.h中定义的用于分别存储时间的各个量(年月日等)的结构体.
    需要注意的是年份加上1900,月份加上1。
    #include<time.h>
    #include<stdio.h>
    int main()
    {
    struct tm *t;
    time_t tt;
    time(&tt);
    t=localtime(&tt);
    printf("%4d年%02d月%02d日 %02d:%02d:%02d\n",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
    return 0;
    }

    gmtime()

    头文件:time.h
    原型:struct tm *gmtime(long *clock);
    功能:把日期和时间转换为格林威治(GMT)时间的函数。将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
    此函数返回的时间日期未经时区转换,而是UTC时间。
    返回值 返回结构tm代表目前UTC 时间
    #include "stdio.h"
    #include "time.h"
    #include "stdlib.h"
    int main(void)
    {
    time_t t;
    struct tm *gmt, *area;
    tzset(); /* tzset()*/
    t = time(NULL);
    area = localtime(&t);
    printf("Local time is: %s", asctime(area));
    gmt = gmtime(&t);
    printf("GMT is: %s", asctime(gmt));
    return 0;
    }
     
     
  • 相关阅读:
    支付宝生活号内置浏览器长按保存二维码
    Web前端发展史
    ES6语法
    Java多线程
    Java基础知识
    静态库和动态库的使用
    Gcc的使用
    Vim的使用
    力扣345. 反转字符串中的元音字母
    力扣605. 种花问题
  • 原文地址:https://www.cnblogs.com/qintangtao/p/2955192.html
Copyright © 2011-2022 走看看