c++时间形式转换

https://cplusplus.com/reference/ctime/

先放上官方文档。

ctime类里,有很多转换时间格式的方法,下面只举例将UTC时间,转换为字符串的代码。

‌‌Unix时间‌,也称为‌POSIX时间,是UNIX或类UNIX系统使用的时间表示方式。它从协调世界时1970年1月1日0时0分0秒起至现在的总秒数,不考虑闰秒。这种时间表示方式被定义为从‌UTC时间1970年1月1日0时0分开始流逝的秒数。Unix时间也常被称为Unix时间戳,是计算机世界中使用的一种时间表示方法。如果某个时间是以巨大的科学计数的形式显示的,那它基本就是UTC时间。

上代码,注释是关键。

复制代码
#include <ctime>  //需要包含此类

time_t rawtime;  //定义一个时间型变量,就类似"整形、浮点型变量"
struct tm ptm;  //定义一个时间结构

rawtime = (time_t)list_n1->at(0).time;  //将一个获取的UTC时间,赋值给刚才定义的时间变量。(time_t)的作用是转换类型,获取的UTC时间是double型,不加(time_t)的话,编译时会报警告,不影响程序运行。
gmtime_s(&ptm,&rawtime); //上面链接的官方文档里用的是gmtime(),如果本句写成 ptm = gmtime(&rawtime) , 编译时会显示错误,提示你gmtime()不安全,现在都用gmtime_s()。
cout << 1970+ptm.tm_year << "年" << 1+ptm.tm_mon << "月" << ptm.tm_mday << "日," << endl;  //根据上述UTC时间的概念,可知,此转换完后,是从1970年1月1日0时0分开始的。所以2024年会显示成54年,所以前面加1970即可修正,月前+1同理,日不用加。并不是所有的UTC型时间都是从1970年1月1日0时0分开始的,具体如何修正,需要根据实际情况来修正。
相关推荐
David猪大卫1 小时前
【C++修炼】哈希表的实现
数据结构·c++·笔记·学习·算法·哈希算法·散列表
广州山泉婚姻1 小时前
列表初始化:C++11全新初始化体系
c++·人工智能
莫生灬灬1 小时前
灵码 LingBuilder:用中文写代码,确定性生成真实 C++ 工程(开源)
c++·开源·mfc
浅念-1 小时前
C++ Protobuf 入门实战:基于通讯录项目吃透proto3语法与序列化
linux·服务器·网络·c++·protobuf·proto·proto3
汉克老师3 小时前
CSP-J 初赛(以满分为目标):第三十九课《数学与逻辑②——阶乘、排列数与组合数:公式到底从哪里来?》
c++·csp-j·小学生·学c++编程
水饺编程3 小时前
第5章,[Win32 章节] :在平面直角坐标系中描点
c语言·c++·windows·visual studio
linx2953 小时前
单元九 · 零基础路线图-第 7–9 周·类与 RAII
c语言·开发语言·数据结构·c++·嵌入式硬件·算法
布莱克6053 小时前
C++ 七大排序算法详解:选择、冒泡、插入、计数、堆、快速与归并排序
数据结构·c++·算法·排序算法
一只旭宝3 小时前
Python 与 C/C++ 内存模型对比总结
c语言·c++·python
心态还需努力呀4 小时前
把 Flameshot 编译进鸿蒙 PC:一次 Qt C++ 截图工具的源码级移植实战
c++·qt·harmonyos