Qt读取本地系统时间的几种方式

一,使用Windows API函数GetLocalTime(精确到毫秒)

typedef struct _SYSTEMTIME   //SYSTEMTIME结构体定义

{
  WORD wYear;//年
  WORD wMonth;//月
  WORD wDayOfWeek;//星期,0为星期日,1为星期一,2为星期二……
  WORD wDay;//日
  WORD wHour;//时
  WORD wMinute;//分
  WORD wSecond;//秒
  WORD wMilliseconds;//毫秒
} SYSTEMTIME,*PSYSTEMTIME;

SYSTEMTIME sys;
GetLocalTime( &sys );
printf("%4d/%2d/%2d %2d:%2d:%2d.%3d\n",  
sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds); 
//输出为“2024/3/16 10:13:23.234”

二,使用C语言函数localtime

1,使用asctime()进行格式转换

/*得到系统时间*/
time_t cur;
struct daytime;
cur = time((time_t*)NULL);
time(&cur);       /*时间转换*/
daytime = *localtime(&cur);     
printf("%s", asctime(&daytime));
//输出为“Wed Feb 13 15:46:11 2016”

2,使用strftime()进行格式转换

time_t t = time( 0 );
char tmp[64];
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );
printf("%s\n",tmp);
//输出为“2016/05/20 13:11:57 Friday 本年第141天 中国标准时间”
其中函数size_t strftime(char *strDest,size_t maxsize,const char *format,const  struct tm *timeptr)

功能为根据format指向字符串中格式命令把timeptr中保存的时间信息放在strDest指向的字符串中,最多向strDest中存放maxsize个字符。该函数返回向strDest指向的字符串中放置的字符数。

format参数说明:
%a 星期几的简写
%A 星期几的全称
%b 月份的简写
%B 月份的全称
%c 标准的日期的时间串
%C 年份的前两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年份,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从1到7,星期一为1)
%U 第年的第几周,把星期日作为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号

三,使用QDateTime获取带日期的时间

QDateTime current_date_time =QDateTime::currentDateTime();
QString current_date =current_date_time.toString("yyyy.MM.dd hh:mm:ss.zzz ddd");

yyyy表示年;MM表示月;dd表示日; hh表示小时;mm表示分;ss表示秒;zzz表示毫秒;ddd表示周几

connect(&time,SIGNAL(timeout()),this,SLOT(onTimeOut()));
time.start(1000);void MainWindow::onTimeOut()
{// 获取系统当前时间QDateTime dateTime = QDateTime::currentDateTime();sdateTimer = dateTime.toString("yyyy-MM-dd HH:mm:ss.zzz");ui->label->setText(sdateTimer);// 显示的内容ui->lcdNumber->display(sdateTimer);
}

四,使用QTime获取本地时间

QTime可以像QDateTime::toString那样直接输出固定格式的字符串。

QTime current_time =QTime::currentTime();
int hour = current_time.hour();     //当前的小时
int minute = current_time.minute(); //当前的分
int second = current_time.second(); //当前的秒
int msec = current_time.msec();     //当前的毫秒

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

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

相关文章

2024年华为OD机试真题-考古学家-Java-OD统一考试(C卷)

题目描述: 有一个考古学家发现一个石碑,但是很可惜,发现时其已经断成多段,原地发现n个断口整齐的石碑碎片。为了破解石碑内容,考古学家希望有程序能帮忙计算复原后的石碑文字组合数,你能帮忙吗? 输入描述: 第一行输入n,n表示石碑碎片的个数。 第二行依次输入石碑碎片上…

PCL ICP配准高阶用法——统计每次迭代的配准误差并可视化

目录 一、概述二、代码实现三、可视化代码四、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 在进行论文写作时,需要做对比实验,来分析改进算法的性能,期间用到了迭代误差分布统计的比较分析,为直…

进一步理解C++里的封装有什么作用

当谈论封装时,我们实际上是在讨论面向对象编程中的一个重要概念,即数据隐藏。封装通过将数据和操作数据的方法捆绑在一起,从而防止外部对象直接访问和修改类的内部数据,以保护数据的完整性和安全性。 用费曼学习法(Fe…

leetcode 322.零钱兑换

思路:完全背包。 首先分析问题我们可以知道,这个题的本质就是对于每一个硬币选于不选的问题,也就是所谓的背包问题。而后,这里的每一个硬币都是无限多的,也就是说,这不是01背包或者其他背包问题&#xff0…

Claude 3似乎比GPT-4性能更高,更多的人在尝试使用它

Anthropic 是 OpenAI 的主要竞争对手之一,于 3 月初推出了其最新的大型语言模型 (LLM),称为 Claude 3。事实证明,Claude 3 的性能优于 OpenAI 的旗舰产品 GPT-4,这让 AI 社区感到惊讶,这标志着 GPT-4 的第一个实例被超…

C++中string容器的元素访问

以string容器为例,容器中元素访问的方式有三种: 1.下标[ ]运算符重载 访问元素 普通对象:char& operator[] (size_t pos) 常对象:const char& operator[] (size_t pos) const string s1("abcdefg"); cout &…

线程的常用方法有哪些?

1、典型回答 线程常用方法有以下这些: start():启动线程,并调用线程的 run() 方法来执行任务。run():线程的实际工作方法 (普通方法),定义线程要执行的任务。sleep(long millis):暂停当前线程的执行&#…

镜像中更新cuda 配置

1. 进入base 镜像对应的容器: 1.1 docker run -it --gpus all -v /home/huangxiujie:/home/huangxiujie iregistry.baidu-int.com/huangxiujie/tsai_reversing:paddlecloud-v2.3.0-gcc820-cuda11.0_cudnn8-nccl2.12.10 /bin/bash 1.2. docker 挂载本地目录 docker…

Java只有中国人在搞了吗?

还是看你将来想干啥。想干应用架构,与Java狗谈笑风生,沆瀣一气,你就好好写Java,学DDD,看Clean Architecture。你想成为炼丹玄学工程师,年入百万,就选python,专精各种paper。你不在意…

对话李喆:Martech在中国需要转化成以客户需求为驱动的模式

关于SaaS模式在中国的发展,网上出现多种声音。Marteker近期采访了一些行业专家,围绕SaaS模式以及Martech在中国的发展提出独特观点。赛诺贝斯副总裁李喆认为,SaaS可以分为场景化的SaaS、一体化的SaaS和功能化的SaaS,三者都有一定规…

【vue3学习之路(一)】

文章目录 前言一、vue3项目创建1.1环境准备1.1.1 基于 vue-cli 创建(脚手架创建)1.1.2 基于 vite 创建(推荐) 二、熟悉流程总结 前言 参考视频:https://www.bilibili.com/video/BV1Za4y1r7KE?p10&spm_id_frompag…

Switch搜不到5g wifi

Switch偶尔可以连上5GHz的SSID,但有时却又搜不到,其实只是频道在作祟。 频道是为了减少干扰 Switch仅有特定频道才能连接 刚刚提到,不论2.4GHz或是5GHz频段都有不同的频道可以选择,即便都是2.4GHz频段选择不同频道才能避免之间的…

代码随想录算法训练营第五十七天|647 回文子串 516.最长回文子序列

647. 回文子串 https://leetcode.com/problems/palindromic-substrings/ 思路: 当我们看到两个下标 i, j 上 s[i] ! s[j], 那么 s[i: j1] 一定不是回文子串。 如果s[i] s[j], 那么我们可以在检查 s[i1: j] 是不是回文串。如果暴力搜索的话是 O(n^3) 的…

【设计模式】单例模式详解

单例模式: 定义:确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。为了防止出现重复的创建。 单例模式是JAVA中最简单的设计模式之一。属于创建型设计模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个…

辅助功能IOU(交并比)_3.2

实现两个目标框的交并比候选框在多目标跟踪中的表达方式及相应转换方法 IOU(Intersection over Union),“交并比”,是计算机视觉和图像处理中常用的一个评价指标,尤其在目标检测任务中用来衡量模型预测的目标框与真实目标框的重合程度。 具体…

(附源码)基于Spring Boot + Vue的招聘平台设计与实现

前言 💗博主介绍:✌专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2024年Java精品实战案例《100套》 🍅文末获取源码联系🍅 &#x1f31…

服务消费微服务

文章目录 1.示意图2.环境搭建1.创建会员消费微服务模块2.删除不必要的两个文件3.检查父子模块的pom.xml文件1.子模块2.父模块 4.pom.xml 添加依赖(刷新)5.application.yml 配置监听端口和服务名6.com/sun/springcloud/MemberConsumerApplication.java 创…

【windows】安装 Tomcat 及配置环境变量

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

【学习】Python库addict,使用Dict 的类

from addict import Dict 这行代码导入了 Dict 类,它来自于 addict 模块。在这个上下文中,addict 是一个 Python 库,它提供了一个名为 Dict 的类,用于创建可通过属性访问的字典对象。 使用 addict 中的 Dict 类可以方便地创建字典…

【大模型】VS Code(Visual Studio Code)上安装的扩展插件用不了,设置VS Code工作区信任

文章目录 一、找到【管理工作区信任】二、页面显示处于限制模式,改为【信任】三、测试四、总结 【运行环境】win 11 相关文章: 【大模型】直接在VS Code(Visual Studio Code)上安装CodeGeeX插件的过程 【问题】之前在 VS Code上安装 CodeGeeX 插件后&…