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

    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
    ",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
    ",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;
    }
  • 相关阅读:
    668. Kth Smallest Number in Multiplication Table
    658. Find K Closest Elements
    483. Smallest Good Base
    475. Heaters
    454. 4Sum II
    441. Arranging Coins
    436. Find Right Interval
    410. Split Array Largest Sum
    392. Is Subsequence
    378. Kth Smallest Element in a Sorted Matrix
  • 原文地址:https://www.cnblogs.com/lcx4/p/4475908.html
Copyright © 2011-2022 走看看