<ctime>, clock()
catalog
- ctime
- clock()
- time()
- UTC
- gmtime
- localtime
ctime
里, 是直接使用的<time.h>
是一个C
库!!! 不是c++的
也就意味着: 他里面的东西clock(), clock_t
都是全局的!!!
clock()
clock_t clock();
函数 用于计算: 程序已经运行多久了, 即: 从程序的main函数开始执行, 到现在, 有多少个clock tick 时钟滴答
clock_t
是一个 整数.
比如, 你main函数 刚开始, 你调用clock()
返回值 肯定是0
- 一个
clock tick
, 表示多久呢?? 这不是一个固定量, 他取决于:CLOCKS_PER_SEC
的宏定义 (一般是1000)
即, 比如有x
个clock_t, 则他就代表:x / CLOCKS_PER_SEC
个秒 clock()
函数, 是与线程无关的!!! 同一时刻, 所有的线程 他们的clock()
返回值都是一样的!!
即, 子线程的clock()
, 依然是以exe的main函数
开始 为起点的, 而不是 (子线程的开始时刻)
[0 (main函数开始)] [5 (sub_thread开始, 且以detach方式)] [x]
在[x]时刻时:main线程
和sub线程
的clock()
返回值, 是一样的
time()
time_t time( time_t * _p)
- 返回值: 从
1970-1-1 0:0
到 此刻的 秒数 (若time_t是int类型, 则可以维持到 2038年)
他不一定是正确的!!! 他的值, 是根据 (系统时间) 来计算的!!! 而系统时间, 是可以手动修改的!!! - 参数: 如果不是null, 则将(返回值) 也赋值到 _p中
UTC
我们此时得到了: time_t stamp = time();
由于他是一个整数, 我们需要将他 转换为: (年-月-日…)
而一个相同的stamp, 对于不同的(时区): 其小时是不同的, 其他(分钟/秒/…)都相同
我们需要将这个stamp, 转换为: 我们所在地区的 时区
世界同一时间: UTC
UTC分为: 24个时区
以GMT: 格林尼治时区(英国伦敦)
为UTC的标准时间; 其他的时区, 以GMT
的时间, +x 或 -x, 表示: 比GMT快/慢x个小时
比如, 我们中国 所在的时区是: UTC +8
, 即我们的时间 比GMT国际时间, 要快8个小时;
gmtime
struct tm * _t = localtime( &stamp);
将stamp 这个时间戳
, 根据GMT (标准UTC), 得到一个tm结构体 (这个结构体, 有年月日…)
其实转换规则很简单, 就是直接根据stamp
个秒数, 然后转换成 (年, 月, 日, …)
localtime
struct tm * _t = localtime( &stamp);
这里的local
的意思是: 将stamp 这个时间戳
, 根据本机系统的时区 (这个系统时区, 也是可以手动修改的), 转换为 一个tm结构体 (这个结构体, 有年月日…)
比如说, 你的系统时区是: UTC +8
localtime = gmtime + (8 hours)
<ctime>, clock()相关推荐
- <STM32>STM32CubeMX-ADC采集(软件触发)(4)
<STM32>STM32CubeMX-ADC采集(软件触发单通道)(4) 本节主要讲解ADC采集数据的功能,采集采用软件触发的方式: ADC的详细解说可参考<STM32F4XXX中文 ...
- <binding>和<operation>元素
<binding>和<operation>元素 Binding栏是完整描述协议.序列化和编码的地方,Types, Messages和PortType栏处理抽象的数据内容,而Bi ...
- 水鱼 学习回顾 <1>
学习回顾 <1> 1.注释 2.选择语句 3.循环语句 4.函数 5.数组 6.操作符 7.关键字 8.其他穿插知识点 1.注释 鼠标选中代码块 Ctrl+K+C 快速注释 int num ...
- 封装自定义的redis切库工具类ByteArrayRedisTemplate,读取byte数组反序列化成List<Object>
封装自定义的redis切库工具类ByteArrayRedisTemplate,读取byte数组反序列化成List<Object>(使用lettuce连接池) 代码环境 框架:springb ...
- mybatis中<mappers> ,mapperLocations,和MapperScannerConfigurer 用法
mybatis中<mappers> ,mapperLocations,和MapperScannerConfigurer 用法 1. mappers标签 在mybatis单独使用时,myba ...
- 训练时发生的错误:Couldn‘t open shared file mapping: <000001910A228862>, error code: <1455>
今天在运行TTSR时第14个epoch时发生了以下错误: 看到一篇博客有写: RuntimeError: Couldn't open shared file mapping: <torch_37 ...
- C++头文件<functional>和bind、placeholders占位符使用简单例子
相关博文:C++新特性探究(十五):bind 相关博文:C++头文件<functional>和bind.placeholders占位符使用简单例子 相关博文:<Essential C ...
- opencv中 .at<uchar>()和.ptr<uchar>()使用方法的区别
opencv中 .at<uchar>()和.ptr<uchar>()使用方法的区别在opencv中,.at<uchar>()和.ptr<uchar>() ...
- vector<int> v, vector<int> v(n) 与vector<int> v[n]的区别
一.vector<int> v表示声明一个容器v,并且不给他预定存储空间. 运行: vector<int> v;cout << v.size(); 输出为: 0 二 ...
最新文章
- 基础面试题 — 数据结构与算法
- 史上第一次,AI能够自学翻译地球上的任何语言了
- 3、深入理解计算机系统笔记:程序的机器级表示
- 怎么把本地的项目同时提交到两个仓库
- C语言20790内所有因子的和,长春市水污染控制指标的因子和聚类分析.pdf
- mysql查询返回xml格式_MySQL数据库查询操作XML的经验分享
- qt 串口 环形缓存_qt linux串口 缓冲区多大
- iOS发展系列II - UILabel 使用摘要
- 前端自适应----单位rem
- 语音识别端到端模型解读:FSMN及其变体模型
- mysql lock trx id_MySQL中RR模式下死锁一例
- java 深入io_Java高级编程-IO操作深入
- 多线程与多进程(4)
- 深度学习优化算法:AdaDelta算法
- Gmail使用别名和googlemail.com将邮箱变为多账号
- 3年间 女子称遭邻居报复放了上千条虫子
- 禁用Insert按键
- AcWing - 寒假每日一题2023(DAY 11——DAY 15)
- 基于python网络爬虫的个性化音乐播放器
- 《女侦探司马楠之箱尸谜案》横店开机 花潼冯荔军热血联手破奇案
热门文章
- 【BAT面试必备】一致性哈希算法原理 一文吊打面试官
- MySQL高可用架构
- Python信号处理小试牛刀——快速傅里叶变换(FFT)
- noscript的使用
- zlkw什么意思_kw是什么单位
- 华为服务器gpu芯片,GPU云运算服务器方案
- 个体值0和31差多少攻击_个体值到底重不重要???
- android手机制造商_如果您关注更新,则应注意这些Android制造商
- 使用cpxfiddle画图,例如phase,magnitude等
- 2018年湖北省大学程序设计竞赛 D. Who killed Cock Robin(树形DP)