C++获取系统时间和格林制(GMT)时间函数,并按一定格式输出

2023-11-16

        C++获取系统本地时间函数localtime 和gmtime。

其中输出格式说明如下:

%a 星期几的缩写
%A 星期几的全名 
%b 月份名称的缩写
%B 月份名称的全名
%c 本地端日期时间较佳表示字符串
%d 用数字表示本月的第几天 (范围为 00 至 31)日期 
%H 用 24 小时制数字表示小时数 (范围为 00 至 23)
%I 用 12 小时制数字表示小时数 (范围为 01 至 12) 
%j 以数字表示当年度的第几天 (范围为 001 至 366) 
%m 月份的数字 (范围由 1 至 12)
%M 分钟
%p 以 ''AM'' 或 ''PM'' 表示本地端时间
%S 秒数
%U 数字表示为本年度的第几周,第一个星期由第一个周日开始
%W 数字表示为本年度的第几周,第一个星期由第一个周一开始 
%w 用数字表示本周的第几天 ( 0 为周日)
%x 不含时间的日期表示法
%X 不含日期的时间表示法
%y 二位数字表示年份 (范围由 00 至 99)
%Y 完整的年份数字表示,即四位数
%Z(%z) 时区或名称缩写


下面选择网络http信息头Data格式如:Sat, 11 Mar 2017 21:49:51 GMT

获取格林制时间函数

#include <stdlib.h>
#include <string.h>
#include <time.h>
using namespace std;
/** @fn: int CHttpUtil::GetGmtTime(char* szGmtTime)
 *  @brief : 获取格林制GMT时间
 *  @param (out) char * szGmtTime : 存放GMT时间的缓存区,外部传入
 *  @return int : szGmtTime的实际长度
 */
int CHttpUtil::GetGmtTime(char* szGmtTime)
{
    if (szGmtTime == NULL)
    {
        return -1;
    }
    time_t rawTime;
    struct tm* timeInfo;
    char szTemp[30]={0};
    time(&rawTime);
    timeInfo = gmtime(&rawTime);
    strftime(szTemp,sizeof(szTemp),"%a, %d %b %Y %H:%M:%S GMT",timeInfo);
    strcpy_s(szGmtTime,strlen(szTemp)+1,szTemp);//必须这样,避免内存释放,内容没有的问题。 

    return strlen(szGmtTime);
}



获取系统本地时间函数:

#include <stdlib.h>
#include <string.h>
#include <time.h>
using namespace std;
/** @fn: int CHttpUtil::GetLocalTime(char* szLocTime)
 *  @brief : 获取系统本地时间
 *  @param (out) char * szLocTime: 存放本地时间的缓存区,外部传入
 *  @return int : szLocTime的实际长度
 */
int CHttpUtil::GetLocalTime(char* szLocTime)
{
    if (szLocTime== NULL)
    {
        return -1;
    }
    time_t rawTime;
    struct tm* timeInfo;
    char szTemp[30]={0};

    time(&rawTime);
    timeInfo = localtime(&rawTime);
    strftime(szTemp,sizeof(szTemp),"%a, %d %b %Y %H:%M:%S",timeInfo);

    strcpy_s(szLocTime,strlen(szTemp)+1,szTemp);
    return strlen(szLocTime);
}

调试发现这样用会更好一些:

time_t rawTime;  
struct tm timeInfo;
char szTemp[30] = {0};
time(&rawTime);  
localtime_s(&timeInfo, &rawTime);  
strftime(szTemp, sizeof(szTemp), "%a, %d %b %Y %H:%M:%S", &timeInfo);
strcpy_s(szLocTime, strlen(szTemp)+1, szTemp);

time_t rawTime;  
struct tm timeInfo;
char szTemp[30] = {0};
time(&rawTime);  
gmtime_s(&timeInfo, &rawTime);  
strftime(szTemp, sizeof(szTemp), "%a, %d %b %Y %H:%M:%S", &timeInfo);
strcpy_s(szGmtTime, strlen(szTemp)+1, szTemp); 








本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++获取系统时间和格林制(GMT)时间函数,并按一定格式输出 的相关文章

随机推荐

  • QT-信号与槽机制学习笔记

    QT 信号与槽机制学习笔记 一 标准信号和槽 二 自定义信号与槽 2 1 信号与槽的案例 无参数 2 2 有参数的信号与槽案例 三 信号和槽的扩展 四 Qt4的信号和槽函数 五 QDebug的输出转义问题 六 lambda表达式 6 1 简
  • 常见面试题--memcpy()和strcpy()的区别

    前言 memcpy 和strcpy 的区别是常见的面试题 以前面试的时候被问起过 觉得当时回答的不是很好 这里做一下总结 方便自己和有需要的人查看 这个问题主要考查基本能力 这两个都是常见的拷贝函数 C语言程序员都经常会用到 用法都清楚 但
  • Jmeter 配置使用(一)

    Jmeter 简介 Jmeter 下载安装 测试实施 创建线程组 添加Http请求 查看结果树 聚合报告 添加断言
  • 为eclipse添加tomcat插件(eclipse tomcat plugin)

    打开站点 http marketplace eclipse org content eclipse tomcat plugin 把Install拖到打开的eclipse的工作区中 即可下载安装 安装后eclipse将重启 重新打开后可见工具
  • 【转】一篇文章读懂大数据中台架构

    一篇文章读懂大数据中台架构
  • mysql5.7驱动配置

    环境 mysql5 7 url后面需要加上useUnicode true characterEncoding utf8 serverTimezone UTC这几个参数 否则会报错 datasource driver class name c
  • 清风数学建模学习笔记——TOPSIS法(优劣解距离法)

    优劣解距离法 TOPSIS法 Technique for Order Preference by Similarity to Ideal Solution 可翻译为逼近理想解排序法 国内常简称为优劣解距离法 TOPSIS 法是一种常用的 综
  • 银联支付 前端 接收后端数据 写入页面

    如果能够帮到您 烦请给个赞或者评论 不甚感谢 点击确认支付 跳转银联页面 后台传入html 给我 我需要将html append html 放在html 里 html html html html data data union pay h
  • 使用多个路由器有线桥接实现无线漫游

    虽然 WDS 是平价的无线漫游实现最优先考虑的方案 但 WDS 几个路由之间的通信还是无线 无线没有有线稳定这是不争的事实 使用有线桥接来实现无线漫游 各个路由之间的通信通过有线 相对来说理论上要稳定些 示例 三个路由器 一主二从 两个也行
  • libcurl快速入门

    libcurl是一个跨平台的网络协议库 支持http https ftp gopher telnet dict file 和ldap 协议 gt libcurl同样支持HTTPS证书授权 HTTP POST HTTP PUT FTP 上传
  • 工厂模式与构造函数模式的区别

    目录 一 工厂模式 二 构造函数模式 一 工厂模式 1 工厂模式其实就是普通函数 2 可以解决创建多个类似对象的问题 3 没有解决对象标识问题 即新创建的对象是什么类型 工厂模式 function createPerson name age
  • AIX系统升级记录

    从6100 01 01 0823升级到6100 05 00 1016 一 下载补丁 下载地址 http www 912 ibm com eserver support fixes Product Group gt System p Prod
  • 测试内存超频软件,内存超频工具(SPDtool)

    都知道CPU可以超频 这一点儿也不稀奇 不过 今天小编带给大家的这款spdtool可是传说中的内存超频软件 震惊了吧 现在的游戏画面越来越精致 场景也越来越大 所以 对内存的要求也更高了 这款内存超频工具也就应运而生了 本软件利用修改spd
  • Leaflet基础入门教程(一)

    leaflet是一个前端的轻量的gis框架 为什么说它轻量呢 因为相比于传统的 庞大的 GIS框架比如openlayers和mapbox leaflet不仅代码体积小 而且API构成也极为简单 是GIS行业小白入门级别学习的最好的框架 没有
  • 【AI面试】Anchor based 、 Anchor free 和 no anchor 的辨析

    深度学习的目标检测算法 通常会在输入图像中采样大量的区域 然后判断这些区域中是否包含我们感兴趣的目标 并调整 回归 区域边界 从而更准确地预测目标的真实边界框 ground truth bounding box 目标检测算法会需要做两个事情
  • Maven deploy plugin使用

    Maven deploy plugin使用 简介 maven deploy plugin主要是为了用来将artifact部署到远程仓库中 Goals Goal Description deploy deploy 部署artifact到远程仓
  • 自然语言处理(NLP)精选13道面试题

    文末彩蛋 七月在线干货组最新升级的 名企AI面试100题 免费送 1 为什么BERT在第一句前会加一个 CLS 标志 BERT在第一句前会加一个 CLS 标志 最后一层该位对应向量可以作为整句话的语义表示 从而用于下游的分类任务等 为什么选
  • CUDA学习(十四) cuSolver学习中的 compressed sparse row format matrix(行存储的压缩矩阵 CSR)

    http www netlib org utk people JackDongarra etemplates node373 html 主要参考这里面的内容 现有一个矩阵 观察该矩阵可以发现 该矩阵有很多0 压缩的方式就是去掉这些0元素 所
  • Linux系统开机出现 “welcome to emergency mode!”已解决

    1 问题出现原因及描述 在我编写完 etc fstab文件之后 当我尝试为linux系统增加一个新的分区时 在永久挂载之后 重启系统发现 进入了如下界面 出现 Authorization not available Check if pol
  • C++获取系统时间和格林制(GMT)时间函数,并按一定格式输出

    C 获取系统本地时间函数localtime 和gmtime 其中输出格式说明如下 a 星期几的缩写 A 星期几的全名 b 月份名称的缩写 B 月份名称的全名 c 本地端日期时间较佳表示字符串 d 用数字表示本月的第几天 范围为 00 至 3