【C++】时间time库

time

文章目录

  • time
    • time_t
    • struct tm
    • 示例

linux下存储时间常见的有两种存储方式,一个是从1970年到现在经过了多少秒,一个是用一个结构来分别存储年月日时分秒的。
time_t 这种类型就是用来存储从1970年到现在经过了多少秒,要想更精确一点,可以用结构 struct timeval,它精确到微妙。
struct tm 结构体类型指针,这种结构体中分别定义了年月日时分秒等,我们可以利用它格式化输出

struct timeval
{long tv_sec; /*秒*/long tv_usec; /*微秒*/
};

time_t

time_t类型变量用来存储1970至今的秒数
time()获取从1970年至今的秒数

time(0)函数返回当前格林尼治标准时间与格林尼治标准时间1970年0分0秒的时间间隔。

#include <iostream>
int main() {time_t t;time(&t);std::cout << t << std::endl;std::cout << time(0) << std::endl;//结果相同return 0;
}

struct tm

struct tm直接存储年月日的是一个结构 , 用来格式化输出:

struct tm
{int tm_sec;  /*秒,正常范围0-59, 但允许至61*/int tm_min;  /*分钟,0-59*/int tm_hour; /*小时, 0-23*/int tm_mday; /*日,即一个月中的第几天,1-31*/int tm_mon;  /*月, 从一月算起,0-11*/  1+p->tm_mon;int tm_year;  /*年, 从1900至今已经多少年*/  1900+ p->tm_year;int tm_wday; /*星期,一周中的第几天, 从星期日算起,0-6*/int tm_yday; /*从今年1月1日到目前的天数,范围0-365*/int tm_isdst; /*日光节约时间的旗标*/
};

相关API:

#include <time.h>
char *asctime(const struct tm* timeptr);
// 将结构中的信息转换为真实世界的时间,以字符串的形式显示char *ctime(const time_t *timep);
// 将timep转换为真实世界的时间,以字符串显示,它和asctime不同就在于传入的参数形式不一样double difftime(time_t time1, time_t time2);
// 返回两个时间相差的秒数int gettimeofday(struct timeval *tv, struct timezone *tz);
// 返回当前距离1970年的秒数和微妙数,后面的tz是时区,一般不用struct tm *gmtime_r(const time_t *timep, struct tm *result);
// 将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针struct tm *localtime_r(const time_t *timep, struct tm *result);
// 和gmtime_r类似,但是它是经过时区转换的时间。time_t mktime(struct tm* timeptr);
// 将struct tm 结构的时间转换为从1970年至今的秒数time_t time(time_t *t);
// 取得从1970年1月1日至今的秒数。

示例

void func(std::ostream& os){struct tm tm;time_t time = event->getTime();localtime_r(&time, &tm);char buf[64];strftime(buf, sizeof(buf), m_format.c_str(), &tm);os << buf;
}
// strftime()函数根据格式字符串将给定的日期和时间从给定的日历时间转换为以空结尾的多字节字符串
size_t strftime( char* str, size_t count, const char* format, const tm* time );

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/203910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天池SQL训练营(二)-SQL基础查询与排序

-天池龙珠计划SQL训练营 Task02&#xff1a;SQL基础查询与排序 SQL训练营页面地址&#xff1a;https://tianchi.aliyun.com/specials/promotion/aicampsql 一、SELECT语句基础 1.1 从表中选取数据 SELECT语句 从表中选取数据时需要使用SELECT语句&#xff0c;也就是只从表…

扩散模型diffusion model用于图像恢复任务详细原理 (去雨,去雾等皆可),附实现代码

文章目录 1. 去噪扩散概率模型2. 前向扩散3. 反向采样3. 图像条件扩散模型4. 可以考虑改进的点5. 实现代码 话不多说&#xff0c;先上代码&#xff1a; 扩散模型diffusion model用于图像恢复完整可运行代码&#xff0c;附详细实验操作流程 令外一篇简化超分扩散模型SR3来实现图…

红队系列-内网横向

内网横向 渗透测试-内网横向MS-17010利用方法总结原理介绍漏洞利用MSFLadon 渗透测试-从公有云到内网漫游RCE-反序列化-frp0x01 前言0x02 前期打点0x03 想办法打内网0x04对上面的IP进行渗透0x05 愉快的内网漫游 windows凭据窃取MimikatzProcdumpGet-PassHashes.ps1 Windows远程…

75 内建函数对象-关系仿函数

#include <iostream> #include <string> #include <functional> #include <vector> #include <algorithm>using namespace std;//内建仿函数-关系仿函数 // 使用内建函数对象的时候&#xff0c;需要引入头文件 functionalvoid printVector(vecto…

08-中介者模式-C语言实现

中介者模式&#xff1a; Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly,and it lets you vary their interaction independently.&#xff08;用一个中介对…

04 ECharts基础入门

文章目录 一、ECharts介绍1. 简介2. 相关网站3. HTML引入方式4. 基本概念 二、常见图表1. 柱状图2. 折线图3. 饼图4. 雷达图5. 地图 三、应用1. 动画2. 交互 一、ECharts介绍 1. 简介 ECharts是一个使用JavaScript实现的开源可视化库&#xff0c;用于生成各种图表和图形。 EC…

Mysql多表查询 思路 ——示例——sql顺序

参考练习题&#xff1a;https://blog.csdn.net/weixin_49627122/article/details/126380916 SQL顺序 在 SQL 查询中&#xff0c;SELECT 语句的执行顺序不是按照查询语句的书写顺序执行的&#xff0c;而是按照逻辑执行阶段来进行。一般来说&#xff0c;SQL 查询的执行顺序可以…

北斗网格二维编码

东经为 E —— east:东方 西经为 W —— west:西方 南纬为 S —— south:南方 北纬为 N —— north 将计算好的编码添加到列表中 my_list [1, 2, 3] my_list.append(4) 参考文献 一级北斗网格计算 高等地图学作业_已知经纬度求图幅编号_.Vector的博客-CSDN博客 其他级别…

spring面试题—— 事务

一&#xff1a;Spring事物是什么&#xff1f; spring事务的本质是底层数据库对事务的支持&#xff0c;spring并不直接管理事物&#xff0c;而是提供了多种事务管理器&#xff0c;具体的实现由持久化框架自己来做。 二&#xff1a;Spring为什么需要事物&#xff1f; add方法&…

如何使用jszip文件格式转换与批量打包成zip下载

文章目录 概要技术细节文件下载小结 概要 在前端开发中&#xff0c;我们经常需要处理文件的格式转换和下载。本文将介绍如何通过 JavaScript 实现将文件 URL 转换为 Blob 类型格式或者 arraybuffer 格式&#xff0c;并通过 JSZip 库实现文件的压缩和下载。 技术细节 先安装所…

数据清洗、特征工程和数据可视化、数据挖掘与建模的主要内容

1.4 数据清洗、特征工程和数据可视化、数据挖掘与建模的内容 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解1.4节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学…

vue3.2版本setup语法糖

setup语法糖&#xff1a; 一、Vue3.0 <script>里定义的变量、属性和方法必须 return 出来&#xff0c;<template>中才能使用&#xff1b;这样会导致在页面上变量会出现很多次。vue3.2只需在script标签中添加setup&#xff0c;就可以帮助我们解决这个问题,无需再写…

JVM 对象内存布局篇

对象的实例化 创建对象有哪些方式&#xff1f; 1、new对象 最常见的方式 变形1:X的静态方法 变形2:XxxBuilder/XxxFactory的静态方法 2、Class的newlnstance0:反射的方式&#xff0c;只能调用空参的构造器&#xff0c;权限必须是public 3、Constructor的newinstance(X):反射的…

软件多开助手的创新使用:在同一设备上玩转多个游戏

软件多开助手&#xff1a;在同一设备上玩转多个游戏的创新使用 随着科技的不断发展&#xff0c;手机和电脑已经成为我们生活中必不可少的工具。众多游戏爱好者也越来越追求在同一设备上同时体验多个游戏的乐趣。而软件多开助手的出现为这一需求提供了创新的解决方案。 传统上…

可视化监管云平台EasyCVR宠物粮食食品厂智能视频监控方案

由于我国养宠物群体的不断膨胀&#xff0c;宠物市场也占据了经济的很大一部分&#xff0c;宠物做为人类的好朋友&#xff0c;可以给人们带来极高的精神抚慰&#xff0c;作为“毛孩子”家长&#xff0c;爱宠人士自然不会亏待自家宠物&#xff0c;都会选择最好的口粮以供宠物食用…

【开源】基于Vue+SpringBoot的教学过程管理系统

项目编号&#xff1a; S 054 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S054&#xff0c;文末获取源码。} 项目编号&#xff1a;S054&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 教师端2.2 学生端2.3 微信小程序端2…

CompletableFuture:Java中的异步编程利器

前言&#xff1a; 在秋招的面试中&#xff0c;面试官问了很多关于异步编程相关的知识点&#xff0c;朋友最近也和我聊到了这个话题&#xff0c;因此今天咱们来讨论讨论这个知识点&#xff01; 随着现代软件系统的日益复杂&#xff0c;对于非阻塞性和响应性的需求也在不断增加…

Vue学习计划-Vue2--Vue核心(六)过滤器和自定义指令

1. 过滤器 定义&#xff1a;对要显示的数据进行特定格式转换再显示&#xff08;适用于一些简单逻辑的处理&#xff09;语法&#xff1a; 注册过滤器&#xff1a;Vue.filter(name, callback) 或 new Vue{filters:{}}使用过滤器&#xff1a;{{ xx | 过滤器名 }} 或 v-bind:属性 …

3 文本分类入门finetune:bert-base-chinese

项目实战&#xff1a; 数据准备工作 bert-base-chinese 是一种预训练的语言模型&#xff0c;基于 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;架构&#xff0c;专门用于中文自然语言处理任务。BERT 是由 Google 在 2018 年提出的一…

gpt1与bert区别

区别1&#xff1a;网络结构&#xff08;主要是Masked Multi-Head-Attention和Multi-Head-Attention&#xff09; gpt1使用transformer的decoder&#xff0c;单向编码&#xff0c;是一种基于语言模型的生成式模型&#xff0c;更适合生成下一个单词或句子 bert使用transformer的…