可以通过time()函数来获得计算机系统当前的日历时间(Calendar Time),处理日期时间的函数都是以本函数的返回值为基础进行运算。

1. time 函数

返回1970-1-1, 00:00:00以来经过的秒数

原型: time_t time(time_t *calptr)

结果可以通过返回值,也可以通过参数得到,见实例

头文件 <time.h>

返回值:

成功:秒数,从1970-1-1,00:00:00 可以当成整型输出或用于其它函数

失败:-1

例:

time_t now;

time(&now);// 等同于now = time(NULL)

printf("now time is %d\n", now);

程序例:

#include

int main(void)

{

time_t t;

t=time(NULL);

printf("The number of seconds since January 1, 1970 is  %d\n",t);

return 0;

}

运行的结果与当时的时间有关,我当时运行的结果是:

The Calendar Time now is 1266637045

其中1266637045就是我运行程序时的日历时间。即从1970年1月1日0时0分0秒到此时的秒数。

第6行中给time函数的参数设置为NULL,可得到具体的秒数。

可将第6行改写为以下形式:

time(&t);

变量t中存放当前的日期和时间(相当于函数返回值);如果想要将这得到日历时间,就需要用到localtime函数,如下:

2. localtime函数

将时间数值变换成本地时间,考虑到本地时区和夏令时标志;

原型: struct tm *localtime(const time_t * calptr);

头文件 <time.h>

 返回值:

成功: struct tm *结构体, 原型如下:

struct tm {

int tm_sec;       /* 秒 – 取值区间为[0,59] */

int tm_min;       /* 分 - 取值区间为[0,59] */

int tm_hour;      /* 时 - 取值区间为[0,23] */

int tm_mday;     /* 一个月中的日期 - 取值区间为[1,31] */

int tm_mon;     /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */

int tm_year;     /* 年份,其值等于实际年份减去1900 */

int tm_wday;    /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一 */

int tm_yday;    /* 从每年1月1日开始的天数– 取值区间[0,365],其中0代表1月1日 */

int tm_isdst;    /* 夏令时标识符,夏令时tm_isdst为正;不实行夏令时tm_isdst为0 */

};

此结构体空间由内核自动分配, 而且不要去释放它.

失败: NULL

例:

time_t now ;

struct tm *tm_now ;

time(&now) ;

tm_now = localtime(&now) ;

printf("now datetime: %d-%d-%d %d:%d:%d\n",

      tm_now->tm_year+1900, tm_now->tm_mon+1, tm_now->tm_mday, tm_now->tm_hour, tm_now->tm_min, tm_now->tm_sec) ;

C语言中time函数和localtime获取系统时间和日期的更多相关文章

  1. C语言中qsort函数用法

    C语言中qsort函数用法-示例分析    本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值. 分享给大家供大家参考.C语言中的qsort ...

  2. C语言中system()函数的用法总结(转)

    system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码: #include <sys/types.h> #include <sys/wait ...

  3. 使用C语言中qsort()函数对浮点型数组无法成功排序的问题

    一 写在开头 1.1 本节内容 本节主要内容是有关C语言中qsort()函数的探讨. 二 问题和相应解决方法 qsort()是C标准库中的一个通用的排序函数.它既能对整型数据进行排序也能对浮点型数据进 ...

  4. C语言中malloc函数返回值是否需要类型强制转换问题

    1. 在C语言中, 如果调用的函数没有函数原型, 则其返回值将默认为 int 型. 考虑调用malloc函数时忘记了 #include <stdlib.h>的情况 此时malloc函数返回 ...

  5. R语言中apply函数

    前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言 ...

  6. (转)C语言中Exit函数的使用

    C语言中Exit函数的使用 exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如 ...

  7. C语言中malloc函数的理解

    在C语言中malloc函数主要是用在堆内存的申请上,使用malloc函数时,函数会返回一个void *类型的值,这个值就是你申请的堆内存的首地址:为什么返回的地址是一个void *类型的地址呢?首先我 ...

  8. 关于C语言中printf函数“输出歧视”的问题

    目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...

  9. c语言中的c语言中realloc()函数解析

    c语言中realloc()函数解析 真是有点惭愧,这些内容本应该很早就掌握的,以前只是糊里糊涂的用,不知道在内存中具体是怎么回事,现在才弄清楚. realloc(void *__ptr, size_t ...

随机推荐

  1. 精通CSS:高级Web标准解决方案(第二版) 初读笔记

    2.1 常用的选择器 1. 类型选择器  p { color: black; } 2. 后代选择器  blockquote p { padding-left: 2em; } 3. ID选择器  #in ...

  2. java:LeakFilling(JSP,servlet,Ajax,Json,Path)

    1. request.setAttribute("test", "测试");       request.getRequestDispatcher(" ...

  3. 按需加载controller——angular

    一.多视图应用 AngularJS 通过路由支持多视图应用, 可以根据路由动态加载所需的视图.随着视图的不断增加, js文件会越来越多, 而 AngularJS 默认需要把全部的 js 都一次性加载, ...

  4. 【计算机视觉】【图像处理】【VS开发】【Qt开发】opencv之深拷贝及浅拷贝,IplImage装换为Mat

    原文:opencv之深拷贝及浅拷贝,IplImage装换为Mat  一.(1) 浅拷贝: Mat B; B = image // 第一种方式 Mat C(image); // 第二种方式 这两种方式称 ...

  5. http 协议里的 200、301、302、401、403、405、500 分别代表什么?

    http 协议里的 200.301.302.401.403.405.500 分别代表什么? 详细描述: 打开某些网页时,无法正常打开,出现 200.301.302.401.403.405.500 这此 ...

  6. tableau分布式添加节点

    参考: 两节点的安装:https://zhuanlan.zhihu.com/p/44732932https://help.tableau.com/current/server-linux/zh-cn/ ...

  7. CDH日常运维

    1/ 作业有问题: 查log,没log再跑一次查log. 如果没有log的情况,比如hiveserver2挂了,查strr. 2/ 查集群名字 #看hdfs集群的名字,在cdh的hdfs配置中查:na ...

  8. PTA(Basic Level)1011.A+B和C

    给定区间 [−231,231] 内的 3 个整数 A.B 和 C,请判断 A+B 是否大于 C. 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数.随后给出 T 组测试用例,每组 ...

  9. Linux 下面根据端口号 查询 可执行程序的路劲的方法

    1. 安装上lsof 的包 2. 使用 lsof 命令查看相关进程 lsof -i: 效果为: 3. 根据/proc 的目录查看可执行目录的文件位置 ll /proc/procid # procid ...

  10. Zookeeper - zookeeper安装与配置

    1.什么时Zookeeper ZooKeeper:分布式服务框架 Zookeeper -- 管理分布式环境中的数据. 2.安装 1>官网下载压缩包并解压zookeeper-3.4.14.zip ...