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。
【公有函数】
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()。 | |
QTime | addMSecs(int ms) const |
QTime | addSecs(int s) const |
返回一个QTime对象,该对象包含的时间比该对象的时间晚s/ms秒(如果s/ms为负数,则比该对象的时间早s/ms秒)。 请注意,如果时间超过午夜,时间将会结束。 如果时间无效,则返回空时间。 | |
int | hour() const |
返回时间的小时部分(0到23)。 如果时间无效,则返回-1。 | |
bool | isNull() const |
如果时间为空,则返回true(即QTime对象是默认构造函数构造的);否则返回false。空时间是无效时间。 | |
bool | isValid() const |
如果时间有效,则返回true否则返回false。例如,时间23:30:55.746是有效的,但24:12:30是无效的。 | |
int | minute() const |
返回时间的分钟部分(0到59)。 如果时间无效,则返回-1。 | |
int | msec() const |
返回时间的毫秒部分(0到999)。 如果时间无效,则返回-1。 | |
int | msecsSinceStartOfDay() const |
返回一天开始以来的毫秒数,即自00:00:00以来的毫秒数。 | |
int | msecsTo(QTime t) const |
返回从这个时间到t的毫秒数。如果t早于这个时间,则返回的毫秒数为负。 因为QTime测量一天中的时间,而一天有86400秒,所以结果总是在-86400000到86400000毫秒之间。 如果任一时间无效,则返回0。 | |
int | second() const |
返回时间的第二部分(0到59)。 如果时间无效,则返回-1。 | |
int | secsTo(QTime t) const |
返回从这个时间到t的秒数。如果t早于这个时间,则返回的秒数为负数。 因为QTime测量一天中的时间,而一天有86400秒,所以结果总是在-86400和86400之间。 secsTo()不考虑任何毫秒。 如果任一时间无效,则返回0。 | |
bool | setHMS(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。 | |
QString | toString(QStringView format) const |
QString | toString(const QString &format) const |
以字符串形式返回时间。format参数确定结果字符串的格式。 可以使用以下表达式:
任何包含在单引号中的非空字符序列都将逐字包含在输出字符串中(去掉引号),即使它包含格式化字符。输出中的两个连续单引号 ("''") 被一个单引号替换。格式字符串中的所有其他字符都逐字包含在输出字符串中。 支持不带分隔符的格式(例如“ddMM”),但生成的字符串并不总是可靠可读的。例如,如果“dM”产生“212”,则可能意味着12月2日或2月21日。
| |
QString | toString(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”。 如果时间无效,将返回一个空字符串。 |
【静态公有成员】
QTime | currentTime() |
返回系统时钟报告的当前时间。 请注意,准确性取决于底层操作系统的准确性;并非所有系统都能提供1毫秒的精度。 此外,currentTime()只在每天增加;每当午夜过后,它将下降24小时;除此之外,如果出现夏令时转换,其变化可能与经过的时间不符。 | |
QTime | fromMSecsSinceStartOfDay(int msecs) |
返回一个新的QTime实例,其时间设置为自一天开始以来的毫秒数,即自00:00:00开始。 如果毫秒不在有效范围内,将返回无效的QTime。 | |
QTime | fromString(const QString &string, Qt::DateFormat format = Qt::TextDate) |
QTime | fromString(QStringView string, Qt::DateFormat format = Qt::TextDate) |
QTime | fromString(QStringView string, QStringView format) |
QTime | fromString(const QString &string, QStringView format) |
QTime | fromString(const QString &string, const QString &format) |
此函数多次重载,功能是使用给定格式将字符串中表示的时间返回为QTime,如果不可能,则返回无效时间。format可用表达式如下:
所有其他输入字符将被视为文本。任何包含在单引号中的非空字符序列也将被视为(去掉引号)文本,而不会被解释为表达式。 如果不满足格式要求,将返回无效的QTime。不期望给出前导零(h、m、s和z)的表达式是贪婪的。这意味着它们将使用两位数(或三位,代表z),即使这会使它们超出可接受的值范围,并且为其他部分留下的位数太少。例如,以下字符串可能表示00:07:10,但m将抓取两位数,从而导致时间无效: 任何未在格式中表示的字段都将被设置为零。例如:
| |
bool | isValid(int h, int m, int s, int ms = 0) |
重载。 如果指定的时间有效,则返回true否则返回false。 如果h在0到23的范围内,m和s在0到59的范围内,ms在0到999的范围内,则时间有效。 |
【相关非成员】
bool | operator!=(QTime lhs, QTime rhs) |
bool | operator<(QTime lhs, QTime rhs) |
QDataStream & | operator<<(QDataStream &out, QTime time) |
bool | operator<=(QTime lhs, QTime rhs) |
bool | operator==(QTime lhs, QTime rhs) |
bool | operator>(QTime lhs, QTime rhs) |
bool | operator>=(QTime lhs, QTime rhs) |
QDataStream & | operator>>(QDataStream &in, QTime &time) |