QTime类

QT定时器之QTimer类加QTime类制作秒表 一、QTime时间类 QTime类提供时钟时间函数。 QTime对象包含一个时钟时间,即从午夜开始的小时、分钟、秒和毫秒数。它可以从系统时钟中读取当前时间,并测量运行时间的跨度。它提供了比较时间和通过添加若干毫秒来操作时间的函数。QTime使用24小时时钟格式;它没有上午/下午的概念 1. 头文件 #include <QTime> 2. QTime QTime::addMSecs(int ms) const 返回一个QTime对象,该对象的时间比该对象的时间晚ms毫秒(如果ms为负,则早ms 阅读详情

QTime类提供时钟时间函数。


Header:#include <QTime>
CMake:find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake:QT += core

注意:此类中的所有函数都是可重入(reentrant)的。


 【详细描述】

一个QTime对象包含一个时钟时间,它可以表示为自午夜以来的小时、分钟、秒和毫秒数。它提供了比较时间和通过增加毫秒数来操作时间的功能。QTime对象应该通过值传递,而不是通过对const的引用传递;他们只是简单地将int打包。

QTime使用24小时时钟格式;它没有AM/PM的概念。与QDateTime不同,QTime对时区或夏令时(DST)一无所知。QTime对象通常通过显式给出小时、分钟、秒和毫秒数来创建,或通过静态函数currentTime()来创建表示系统本地时间的QTime对象。

hour(), minute(), second()和 msec() 函数提供了对时间的小时、分钟、秒和毫秒数的访问。
toString() 函数以文本格式提供了相同的信息。
addSecs()和addMSecs() 函数提供的时间比给定时间晚给定秒数或毫秒数。相应地,可以使用secsTo() 或msecsTo()找到两次之间的秒数或毫秒数。

QTime提供了一整套运算符来比较两个QTime对象;较早的时间被认为比较晚的时间小;如果A.msecsTo(B)为正,则A<B。

QTime对象还可以使用fromString() 从文本创建,并使用toString()转换为字符串。所有字符串格式之间的转换都是使用C语言环境完成的。有关本地化转换,请参见QLocale。 ​

参见 QDate and QDateTime.


【公有函数】

QTime()

构造一个空时间对象。对于空时间isNull()返回true, isValid()返回false。如果需要归零时间,请使用QTime(0, 0)。有关一天的开始,参见QDate::startOfDay()。

QTime(int h, int m, int s = 0, int ms = 0)

用小时h、分钟m、秒s和毫秒ms构造一个时间。 h必须在0到23的范围内,m和s必须在0到59的范围内,ms必须在0到999的范围内。参见 isValid()。

QTimeaddMSecs(int ms) const
QTimeaddSecs(int s) const

返回一个QTime对象,该对象包含的时间比该对象的时间晚s/ms秒(如果s/ms为负数,则比该对象的时间早s/ms秒)。 请注意,如果时间超过午夜,时间将会结束。 如果时间无效,则返回空时间。

inthour() const
返回时间的小时部分(0到23)。 如果时间无效,则返回-1。
boolisNull() const
如果时间为空,则返回true(即QTime对象是默认构造函数构造的);否则返回false。空时间是无效时间。
boolisValid() const
如果时间有效,则返回true否则返回false。例如,时间23:30:55.746是有效的,但24:12:30是无效的。
intminute() const
返回时间的分钟部分(0到59)。 如果时间无效,则返回-1。
intmsec() const
返回时间的毫秒部分(0到999)。 如果时间无效,则返回-1。
intmsecsSinceStartOfDay() const
返回一天开始以来的毫秒数,即自00:00:00以来的毫秒数。
intmsecsTo(QTime t) const
返回从这个时间到t的毫秒数。如果t早于这个时间,则返回的毫秒数为负。 因为QTime测量一天中的时间,而一天有86400秒,所以结果总是在-86400000到86400000毫秒之间。 如果任一时间无效,则返回0。
intsecond() const
返回时间的第二部分(0到59)。 如果时间无效,则返回-1。
intsecsTo(QTime t) const

返回从这个时间到t的秒数。如果t早于这个时间,则返回的秒数为负数。 因为QTime测量一天中的时间,而一天有86400秒,所以结果总是在-86400和86400之间。 secsTo()不考虑任何毫秒。 如果任一时间无效,则返回0。

boolsetHMS(int h, int m, int s, int ms = 0)
将时间设置为小时h、分钟m、秒s和毫秒ms,h必须在0到23的范围内,m和s必须在0到59的范围内,ms必须在0到999的范围内。如果设置的时间有效返回true,否则返回false。
QStringtoString(QStringView format) const
QStringtoString(const QString &format) const

以字符串形式返回时间。format参数确定结果字符串的格式。

可以使用以下表达式:

h:没有前导零的小时(如果显示AM/PM,则为0到23或1到12)
hh:带前导零的小时(如果显示AM/PM,则为00至23或01至12)
H:没有前导零的小时(0到23,即使有AM/PM显示)
HH:带前导零点的小时(00到23,即使有AM/PM显示)
m:没有前导零的分钟(0到59)
mm:有前导零的分钟(00到59)
s:整秒,没有任何前导零(0到59)
ss:整秒,在适用的情况下以零开头(00到59)
z或zz:秒的小数部分,跟在小数点后面,不带尾随零。因此,“s.z”报告的秒数达毫秒精度,不带尾随零(0到999)。例如,“s.z”形式的四分之一秒为“0.25”。
zzz:秒的小数部分,精确到毫秒,含尾随零(000到999)。例如,四分之一秒在“ss.zzz”会产生“00.250”。
​AP或A:使用AM/PM显示。A/AP将由“AM”或“PM”代替。在本地化形式中(仅与QLocale::toString()相关),适合区域设置的文本被转换为大写。

ap或a:使用am/pm显示。a/ap将由“am”或“pm”代替。在本地化形式中(仅与QLocale::toString()相关),适合区域设置的文本被转换为小写。

aP或Ap:使用AM/PM显示(从6.3开始)。aP/Ap将被替换为“AM”或“PM”。在本地化形式中( 仅与QLocale::toString()相关),使用适合区域设置的文本(由QLocale::amText()或QLocale::pmText()返回)时不改变大小写。

t:时区缩写(例如“CEST”)。请注意,时区缩写不是唯一的。特别是toString() 无法解析这一点。

tt:时区相对于UTC的偏移量,小时和分钟之间没有冒号(例如“+0200“)。

ttt:时区相对于UTC的偏移量,在小时和分钟之间有一个冒号(例如“+02:00“)。

tttt:时区名称(例如“欧洲/柏林”)。请注意,这并不表示日期时间是夏令时还是标准时间,如果日期时间在一个小时内,并在两者之间转换,这可能会导致歧义。使用的名称是由 QTimeZone::displayName() 提供,类型为QTimeZone::LongName。这可能取决于使用的操作系统。

任何包含在单引号中的非空字符序列都将逐字包含在输出字符串中(去掉引号),即使它包含格式化字符。输出中的两个连续单引号 ("''") 被一个单引号替换。格式字符串中的所有其他字符都逐字包含在输出字符串中。

支持不带分隔符的格式(例如“ddMM”),但生成的字符串并不总是可靠可读的。例如,如果“dM”产生“212”,则可能意味着12月2日或2月21日。

格式字符串示例(假设QTime为14:13:09.042)
hh:mm:ss.zzz    14:13:09.042
h:m:s ap        2:13:9 pm
H:m:s a         14:13:9 pm

如果时间无效,将返回一个空字符串。

注意:要获取AM或PM的本地化形式(AP, ap, A, a, aP 或 Ap格式),请使用 QLocale::system().toString()。
注意:如果一个格式字符的重复次数超过了上表中使用它的最长表达式的次数,则该部分格式将被读取为多个表达式,它们之间没有分隔符;上面最长的,可能重复的次数与它的副本一样多,以一个可能是较短表达的残基结尾。因此,当08:00时的“HHHHH”将解释为“08088”。

QStringtoString(Qt::DateFormat format = Qt::TextDate) const

重载。以字符串形式返回时间。format参数确定字符串的格式。

如果format为Qt::TextDate,则字符串格式为HH:mm:ss;例如:午夜前1秒将是“23:59:59”。

如果format是Qt::ISODate,则字符串格式对应于日期表示的ISO 8601扩展规范,用HH:mm:ss表示。

若要在ISO 8601日期中包含毫秒,请使用Qt::ISODateWithMs格式,该格式对应于HH:mm:ss.zzz。

如果格式为Qt::RFC2822Date,则该字符串以RFC 2822兼容的方式进行格式化。这种格式的一个例子是“23:59:20”。

如果时间无效,将返回一个空字符串。


【静态公有成员】

QTimecurrentTime()
返回系统时钟报告的当前时间。 请注意,准确性取决于底层操作系统的准确性;并非所有系统都能提供1毫秒的精度。 此外,currentTime()只在每天增加;每当午夜过后,它将下降24小时;除此之外,如果出现夏令时转换,其变化可能与经过的时间不符。
QTimefromMSecsSinceStartOfDay(int msecs)
返回一个新的QTime实例,其时间设置为自一天开始以来的毫秒数,即自00:00:00开始。 如果毫秒不在有效范围内,将返回无效的QTime。
QTimefromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
QTimefromString(QStringView string, Qt::DateFormat format = Qt::TextDate)
QTimefromString(QStringView string, QStringView format)
QTimefromString(const QString &string, QStringView format)
QTimefromString(const QString &string, const QString &format)

此函数多次重载,功能是使用给定格式将字符串中表示的时间返回为QTime,如果不可能,则返回无效时间。format可用表达式如下:

h:没有前导零的小时(如果显示AM/PM,则为0到23或1到12)
hh:带前导零的小时(如果显示AM/PM,则为00至23或01至12)
H:没有前导零的小时(0到23,即使有AM/PM显示)
HH:带前导零点的小时(00到23,即使有AM/PM显示)
m:没有前导零的分钟(0到59)
mm:有前导零的分钟(00到59)
s:整秒,没有任何前导零(0到59)
ss:整秒,在适用的情况下以零开头(00到59)
z或zz:秒的小数部分,跟在小数点后面,不带尾随零。因此,“s.z”报告的秒数达毫秒精度,不带尾随零(0到999)。例如,“s.z”形式的四分之一秒为“0.25”。
zzz:秒的小数部分,精确到毫秒,含尾随零(000到999)。例如,四分之一秒在“ss.zzz”会产生“00.250”。

AP, A, ap, a, aP, Ap:“AM”表示12:00之前的时间,而“PM”表示更晚的时间,不区分大小写。

所有其他输入字符将被视为文本。任何包含在单引号中的非空字符序列也将被视为(去掉引号)文本,而不会被解释为表达式。

如果不满足格式要求,将返回无效的QTime。不期望给出前导零(h、m、s和z)的表达式是贪婪的。这意味着它们将使用两位数(或三位,代表z),即使这会使它们超出可接受的值范围,并且为其他部分留下的位数太少。例如,以下字符串可能表示00:07:10,但m将抓取两位数,从而导致时间无效:

任何未在格式中表示的字段都将被设置为零。例如:

注意:如果要识别am或pm的本地化形式(ap、Ap、aP、AP、A或A格式),请使用 QLocale::system().toTime()。toTime()。

注意:如果格式字符的重复次数超过了上表中使用它的最长表达式的次数,则格式的这一部分将被视为几个表达式,它们之间没有分隔符;上面最长的表达式,可能重复的次数与它的副本一样多,以一个可能是较短表达式的残基结束。因此“HHHHH”将匹配“08088”或“080808”并将小时设置为8;如果时间字符串包含“070809”,它将“匹配”但产生不一致的结果,从而导致无效时间。

boolisValid(int h, int m, int s, int ms = 0)

重载。 如果指定的时间有效,则返回true否则返回false。 如果h在0到23的范围内,m和s在0到59的范围内,ms在0到999的范围内,则时间有效。


booloperator!=(QTime lhs, QTime rhs)
booloperator<(QTime lhs, QTime rhs)
QDataStream &operator<<(QDataStream &out, QTime time)
booloperator<=(QTime lhs, QTime rhs)
booloperator==(QTime lhs, QTime rhs)
booloperator>(QTime lhs, QTime rhs)
booloperator>=(QTime lhs, QTime rhs)
QDataStream &operator>>(QDataStream &in, QTime &time)

<<<返回根页面

QT教程:QTime和QTimer的使用场景 QTime:1.用于表示时间和处理时间计算。它不用于定时操作,而是更适合用于计算两个时间点之间的时间差,或者获取当前时间。QTimer:2.用于定时操作,可以设置每隔一定时间触发任务。它适合用在需要定期执行某些任务的场景中,如 GUI 应用的动画、定时更新等。 阅读详情

相关推荐

Qt 利用QTime类来控制时间,QTime的成员函数的用法

QT

蚂蚁取经 9289

Qt显示视频总时长

Qt显示导入视频的总时长需要通过Opencv来实现。。。  QTime timer;  int fps = cvGetCaptureProperty(pCapture, CV_CAP_PROP_FPS);   int totalFrames = cvGetCapture

小妮子 5462

学习QT之QTime类

QTime类的currentTime()函数用于获取当前的系统时间;QTime的toString()函数用于将获取的时间转换为字符串类型。为了方便显示,toString()函数的参数需指定转换后时间的显示格式。 H/h:小时(若使用H表示小时,则无论何时都以24小时制显示小时;若使用h表示小时,则当同时指定AM/PM时,采用12小时制显示小时,其他情况下仍采用24小时制进行显示)。 m:分。 s...

贝勒里恩的博客 6725

【探索QTime】Qt中的时间操作与转换指南

QTime,一个在Qt库中经常被使用的类,主要用于时间的表示和操作。但在深入了解它之前,我们首先要明白它与QTimer的区别。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 4439

Qt基础篇(QTimer和QTime类)

Qt基础篇(QTimer和QTime类)

c++码农的博客 474

ACR 磁共振安全手册 2024 更新版:全面保障 MRI 安全实践

MR 环境:MR 系统周围的三维空间,包含法拉第屏蔽体积和 9 高斯线,医疗设备在此区域可能因暴露于 MR 设备产生的电磁场而构成危险,需进行访问控制以降低风险MR 受控访问区域:MR 系统周围的局部定义区域,包含 MR 环境(包括其静磁场),访问仅限于授权人员MR 抛射物区域:围绕 MRI 系统的 IV 区区域,铁磁物体在此有成为抛射物的风险图一 磁共振环境:场地规划与区域划分。

楚山之石的博客 2601

【Qt开发】QTime类

QTime类为用户提供一系列时间的函数,封装的很全面,几乎满足了各种时间的需求。 常用方法介绍 1.QTime addMSecs(int ms) const 当前时间增加毫秒,ms可为负 2.QTime addSecs(int s) const 当前时间增加秒,s可为负 3.int elapsed() const 返回自上次调用start()或restart...

码农code之路 1702

Android OTA 升级实战指南:从原理到实现

本文详细解析了Android OTA升级的原理与实现方法,包括AB升级与Recovery升级的机制对比、OTA升级包制作流程以及应用层升级功能的实现。通过实战案例和常见问题排查指南,帮助开发者掌握Android系统无线升级技术,提升设备维护效率。

weixin_42652674的博客 199

Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法:

QTime::QTime()默认构造函数,构造一个时,分,秒都为0的时间,如00:00:00.000(午夜)QTime::QTime(int h, int m, int s=0, int ms = 0)构造一个用户指定时,分,秒的时间.其参数有效值为:h:0--23m:0--59ms:0--999QTime QTime::addMSecs(int ms) const返回一个当前时间对象之后或之前m...

WANGZHEN 5682

AD936x Evaluation Software 详细配置

作者:ShownSun 工作室:时沿科技 文章目录AD936x Evaluation Software详细配置1 系统概述2 AD9361 Wireless Transceiver Evaluation Setup2.1 标签描述2.2 用户参数2.3详细配置3 AD936x RF Wizard3.1 标签描述3.2 用户参数3.3 详细配置4 AD936x Digital Filter Wizard4.1 标签描述4.1.1 时钟配置4.1.2 滤波器配置4.1.3 接收滤波器配置4.1.4 发射滤..

ShownSun博客 5195

基于MATLAB的基本数字调制解调系统的设计

基于MATLAB的基本数字调制解调系统的设计一、摘要现代通信系统要求通信距离远、通信容量大、传输质量好,作为其关键技术之一的调制解调技术一直是人们研究的一个重要方向。本文以MATLAB为软件平台,充分利用其提供的通信工具箱和信号处理工具箱中的模块,对数字调制解调系统进行Simulink设计仿真,并且进行误差分析。调制与解调是通信系统中十分重要的一个环节,针对不同的信道环境选择不同的调制与解调方式可...

m0_55395440的博客 5550

QTime类介绍

Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法: ---------------------------------------------------------------------------------------------------------------------------------------- QTime::QTime() 默认构造函

复兴之路 1万+

大模型之Spring AI实战系列(一):基础认知篇 - 开启智能应用开发之旅

Spring AI 是一个轻量级开源框架,旨在简化 AI 模型在企业级 Java 应用中的集成与管理。它提供了跨多个 AI 服务提供商的便携式 API,支持聊天、文本转图像、嵌入式模型等多种功能,并兼容主流的 AI 模型提供商如 OpenAI、Google 等。Spring AI 的核心功能包括结构化输出、向量数据库支持、工具/函数调用、可观察性、文档摄取 ETL 框架、AI 模型评估等。

寻道AI,探索AI无限可能! 6364

Qt :QTime类的使用

The QTime class provides clock time functions. A QTime object contains a clock time, i.e. the number of hours, minutes, seconds, and milliseconds since midnight. It can read the current time from the...

qq_24127015的博客 6755

24年电赛H题 | 想要小车走直线,正在调角度环,但不知道怎么把角度偏航角偏差转化成电机速度输出?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1313

硬核实战!Python爬虫从0到1完整版:爬取知乎热榜+回答内容(数据去重+Excel一键导出+避坑指南,零基础友好)

✔️ 适用人群:Python爬虫零基础、想练手实战爬虫、需要爬取知乎内容做数据分析、办公/学习素材整理的同学爬取知乎热榜全量数据(排名+标题+热榜链接+热度值) →自动跟进爬取每个热榜问题的回答内容(回答者昵称+赞同数+评论数+回答正文+发布时间) →数据清洗+智能去重→一键导出格式化Excel文件,所有功能一站式完成入门级难度,无复杂反爬破解、无分布式/代理池,纯requests请求+静态解析,新手能看懂、能运行、能修改;爬取速度快,热榜+回答全程仅需几十秒。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1461

qt format函数_【Qt开发】QTime类

QTime类为用户提供一系列时间的函数,封装的很全面,几乎满足了各种时间的需求。常用方法介绍1.QTime addMSecs(int ms) const当前时间增加毫秒,ms可为负2.QTime addSecs(int s) const当前时间增加秒,s可为负3.int elapsed() const返回自上次调用start()或restart()以来经过的毫秒数...

weixin_39901213的博客 2317

【Bug已解决】Auto mode cannot determine the safety of an action — Claude Code 自动模式安全判断失败解决方案

将已知安全的操作添加到白名单,分类器不再拦截这些操作。# 步骤 1:编辑 Claude Code 配置"Read","Write"EOF# 步骤 2:白名单中的操作将自动通过# 不在白名单中的操作仍需分类器判断# 步骤 3:重启 Claude Codeclaude方案适用场景推荐指数难度方案一:手动审批偶发回退,安全优先⭐⭐⭐⭐⭐低方案二:/compact 压缩上下文超限导致⭐⭐⭐⭐低方案三:拆分步骤复杂操作触发⭐⭐⭐⭐低方案四:跳过审批隔离环境,CI/CD。

博客 1万+

Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法

Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法 2013-12-27 23:05:48 分类: C/C++ 转自:http://blog.youkuaiyun.com/hyb_100/article/details/6910496 Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法: -----------

sinat_35741247的博客 5412

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: QT项目文件基本结构
下一篇: QT 知识结构
floatbit
博客等级 码龄24年 460粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值