首页 > 编程语言 >c++时间形式转换

c++时间形式转换

时间:2024-10-31 13:02:27浏览次数:4  
标签:UTC rawtime 转换 形式 gmtime c++ Unix 时间 time

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分开始的,具体如何修正,需要根据实际情况来修正。

标签:UTC,rawtime,转换,形式,gmtime,c++,Unix,时间,time
From: https://www.cnblogs.com/luckyjackyt/p/18517488

相关文章

  • C++:二叉搜索树进阶
    文章目录前言一、二叉搜索树的查找(递归版本)二、二叉树搜索树的插入(递归版本)三、二叉搜索树的删除(递归版本)四、析构函数五、拷贝构造六、赋值重载七、代码总结八、二叉搜索树性能对比九、key_value模型总结前言前面我们学习的二叉搜索树迭代的版本,今天我们来学习递归......
  • 南沙C++信奥赛陈老师解一本通题 1345:【例4-6】香甜的黄油
    ​ 【题目描述】农夫John发现做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道N(1≤N≤500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。农夫John很狡猾。像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时......
  • 字符串数组转换为整数数组
    在C#中,可以使用Array.ConvertAll方法来将字符串数组转换为整数数组。classProgram{staticvoidMain(string[]args){//案例1://使用Array.ConvertAll方法将字符串数组转换为整数数组//情况1:当确定每个数值......
  • 奥数与C++小学四年级(第十五题 希望数)
    参考程序代码:#include<iostream>#include<vector>usingnamespacestd;//每个数字所需的火柴棍数量vector<int>matchsticks={6,2,5,5,4,5,6,3,7,6};//函数来计算一个数的火柴棍总数和数字和voidcheckHopeNumber(intnumber){inttotalMatchst......
  • 在 SQL 中,有许多高效、简洁的函数可用于数据处理、查询优化和数据转换。
    以下是一些常见的SQL函数及其详细中文解释、示例和总结:1.COALESCE作用:COALESCE函数从左到右依次检查其参数,并返回第一个非空的值。如果所有参数都为空,则返回NULL。应用场景:可以在处理缺失数据时使用,尤其是多个字段可能为空的情况下,可以选择一个优先级最高的非空值。......
  • ​Leetcode 166.珠宝的最高价值​ 网格图dp C++实现
    问题:Leetcode166.珠宝的最高价值现有一个记作二维矩阵 frame 的珠宝架,其中 frame[i][j] 为该位置珠宝的价值。拿取珠宝的规则为:只能从架子的左上角开始拿珠宝每次可以移动到右侧或下侧的相邻位置到达珠宝架子的右下角时,停止拿取注意:珠宝的价值都是大于0的。除非这个......
  • c++ string 识别标志位并解析标志位后面的字符
    解析字符串中的固定标志位正则表达式和iterator的配合应用#include<string>#include<map>#include<regex>#include<iostream>//替换\\M+后面的字符//\\M+195B6替换为文std::regexpattern(R"(\\M+[^\\M]*)");//匹配\\M+后跟任意非\\M的字符(0次或多次)......
  • C++多线程应用
    一个进程就是一个程序,一个程序里不止一个功能,每个功能的实现就可以交给一个线程去完成。一个进程就像是一个工程,这个工程里,有设计,有监理,有施工,就相当于三个线程,各干各的又相互配合。https://cplusplus.com/reference/thread/thread/thread/是C++的官方参考,个人觉得比较权威,比经......
  • C++ 模板专题 - 标签分派(Tag Dispatching)
    一:概述:        在C++中,TagDispatching是一种编程技巧,主要用于在编译期根据不同的类型或特征选择不同的函数重载或代码分支。TagDispatching借助类型标签(tags)进行函数调度,用于在模板中实现编译期的静态分派。这种方法特别适合在泛型编程中根据类型特性(如迭代器......
  • C++:二叉搜索树(迭代)
    文章目录前言一、二叉搜索树1.二叉搜索树的概念2.二叉搜索树的操作1)遍历2)查找3)插入4)删除二、二叉搜索树的实现(迭代版本)1.二叉搜索树的结构定义2.二叉搜索树的插入3.二叉搜索树遍历4.二叉搜索树删除5.二叉搜索树查找6.二叉搜索树代码总结总结前言今天来学......