QTime类

Qt 3.0.5

主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数

QTime类参考

QTime类提供了时钟时间功能。 详情请见……

#include <qdatetime.h>

所有成员函数的列表。

公有成员

静态公有成员

  • QTime currentTime ()
  • QTime fromString ( const QString & s, Qt::DateFormat f = Qt::TextDate )
  • bool isValid ( int h, int m, int s, int ms = 0 )

相关函数

  • QDataStream & operator<< ( QDataStream & s, const QTime & t )
  • QDataStream & operator>> ( QDataStream & s, QTime & t )

详细描述

QTime类提供了时钟时间功能。

QTime对象包含时钟时间,比如从午夜开始的时、分、秒和毫秒数。它可以从系统时钟中读取当前的时间并且度量时间的跨度。它提供比较时间和操作时间的函数,比如加上一定的秒或毫秒。

QTime操作的是24小时时钟格式,它没有AM/PM概念。它操作的是本地时间,它不知道有关时区或白天时间的概念。

QTime对象通常可以由明白地给定的时、分、秒和毫秒数字来创建,或者使用静态函数currentTime()让QTime对象包含系统时钟时间。注意精确性取决于下面操作系统的精确性,不是所有的操作系统都有毫秒级精确度的。

hour()、minute()、second()和msec()函数提供了对时、分、秒和毫秒数字的访问。toString()提供了文本格式的相同信息。

QTime提供了一整套的操作符来比较两个QTime对象,在这里小于表示早一些,大于表示晚一些。

一个给定时间之后给定的秒或毫秒数的时间可以使用addSecs()或addMSecs()得到。相对地,两个时间的秒(或毫秒)数可以使用secsTo()或msecsTo()得到。

QTime可以使用start()、restart()和elapsed()函数度量流逝的时间。

也可以参考QDateQDateTime时间和日期


成员函数文档

QTime::QTime ()

构造一个时、分、秒和毫秒都是0的时间,比如,00:00:00.000(午夜)。这是一个有效的时间。

也可以参考isValid()。

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

构造一个时、分、秒和毫秒分别为hmsms的时间。

h必须在0-23之间,ms必须在0-59之间,ms必须在0-999之间。

也可以参考isValid()。

QTime QTime::addMSecs ( int ms ) const

返回这个时间对象ms毫秒之后的一个时间对象(或者ms毫秒之前的,如果它是一个负数)。

注意如果这个时间过了午夜,它将被转换。请参考addSecs()中的实例。

也可以参考addSecs()和msecsTo()。

QTime QTime::addSecs ( int nsecs ) const

返回这个时间对象nsecs秒之后的一个时间对象(或者nsecs秒之前的,如果它是一个负数)。

注意如果这个时间过了午夜,它将被转换。

实例:

    QTime n( 14, 0, 0 );                // n == 14:00:00
    QTime t;
    t = n.addSecs( 70 );                // t == 14:01:10
    t = n.addSecs( -70 );               // t == 13:58:50
    t = n.addSecs( 10*60*60 + 5 );      // t == 00:00:05
    t = n.addSecs( -15*60*60 );         // t == 23:00:00
  

也可以参考addMSecs()、secsTo()和QDateTime::addSecs()。

QTime QTime::currentTime () [静态]

返回当前时间,来自于系统时钟。

注意精确性取决于下面操作系统的精确性,不是所有的操作系统都有毫秒级精确度的。

实例:aclock/aclock.cppdclock/dclock.cppt12/cannon.cpptictac/tictac.cpp

int QTime::elapsed () const

返回从最后一次调用start()或restart()到现在已经过去的毫秒数。

注意如果在最后一次调用start()或restart()后24小时,计数器转换为0。

注意精确性取决于下面操作系统的精确性,不是所有的操作系统都有毫秒级精确度的。

警告: 如果最后一次调用start()或restart()之后,系统时钟设置发生了改变,结果将是不确定的。

也可以参考start()和restart()。

QTime QTime::fromString ( const QString & s, Qt::DateFormat f = Qt::TextDate ) [静态]

通过给定的字符串s,使用格式f,返回这个QTime,或者如果这是不可能的话返回一个无效的时间。

注意Qt::LocalDate在这里不能使用。

int QTime::hour () const

返回时间的小时部分(0-23)。

实例:tictac/tictac.cpp

bool QTime::isNull () const

如果时间和00:00:00.000相等,返回真,否则返回假。零时间是有效的。

也可以参考isValid()。

bool QTime::isValid () const

如果时间是有效的,返回真,否则返回假。时间23:30:55.746是有效的,而24:12:30是无效的。

也可以参考isNull()。

bool QTime::isValid ( int h, int m, int s, int ms = 0 ) [静态]

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

如果时间是有效的,返回真,否则返回假。

如果h在0-23之间、ms在0-59之间、ms在0-999之间,时间是有效的。

实例:

    QTime::isValid(21, 10, 30); // 返回真
    QTime::isValid(22, 5,  62); // 返回假
  

int QTime::minute () const

返回时间的分钟部分(0-59)。

实例:aclock/aclock.cpptictac/tictac.cpp

int QTime::msec () const

返回时间的毫秒部分(0-999)。

int QTime::msecsTo ( const QTime & t ) const

返回这个时间到t的毫秒数(如果t早于这个时间,返回的为负数)。

因为QTime只能度量一天之内的时间,而且一天内只有86400000毫秒,所以结果就应该在-86400000毫秒和86400000毫秒之间。

也可以参考secsTo()。

bool QTime::operator!= ( const QTime & t ) const

如果这个时间不等于t,返回真,否则返回假。

bool QTime::operator< ( const QTime & t ) const

如果这个时间早于t,返回真,否则返回假。

bool QTime::operator<= ( const QTime & t ) const

如果这个时间不晚于t,返回真,否则返回假。

bool QTime::operator== ( const QTime & t ) const

如果这个时间等于t,返回真,否则返回假。

bool QTime::operator> ( const QTime & t ) const

如果这个时间晚于t,返回真,否则返回假。

bool QTime::operator>= ( const QTime & t ) const

如果这个时间不早于t,返回真,否则返回假。

int QTime::restart ()

设置这个时间为当前时间并且返回从最后一次调用start()或restart()到现在过去的毫秒数。

这个函数保证是原子的并且这样对于重复度量是非常方便的。调用start()开始第一次度量,然后调用restart()来做以后的每一次度量。

注意如果在最后一次调用start()或restart()后24小时,计数器转换为0。

警告: 如果最后一次调用start()或restart()之后,系统时钟设置发生了改变,结果将是不确定的。

也可以参考start()、elapsed()和currentTime()。

int QTime::second () const

返回时间的秒部分(0-59)。

实例:tictac/tictac.cpp

int QTime::secsTo ( const QTime & t ) const

返回这个时间到t的秒数(如果t早于这个时间,返回的为负数)。

因为QTime只能度量一天之内的时间,而且一天内只有86400秒,所以结果就应该在-86400秒和86400秒之间。

也可以参考addSecs() and QDateTime::secsTo().

实例:t12/cannon.cpp

bool QTime::setHMS ( int h, int m, int s, int ms = 0 )

设置时间的时、分、秒和毫秒分别为hmsms

h必须在0-23之间,ms必须在0-59之间,ms必须在0-999之间。如果设置的时间有效,返回真,否则返回假。

也可以参考isValid()。

void QTime::start ()

设置这个时间为当前时间。这是实际上使用来计时的:

    QTime t;
    t.start();                     // 开始计时
    ... // 一些任务
    qDebug( "%d\n", t.elapsed() ); // 打印过去的毫秒数
  

也可以参考restart()、elapsed()和currentTime()。

QString QTime::toString ( const QString & format ) const

返回一个字符串的时间。format参数决定了结果字符串的格式。

这些是可能用到的表达式:

  • h - 没有前置0的数字的小时(0-23或者如果显示AM/PM时,1-12)
  • hh - 前置0的数字的小时(00-23或者如果显示AM/PM时,01-12)
  • m - 没有前置0的数字的分钟(0-59)
  • mm - 前置0的数字的分钟(00-59)
  • s - 没有前置0的数字的秒(0-59)
  • ss - 前置0的数字的秒(00-59)
  • z - 没有前置0的数字的毫秒(0-999)
  • zzz - 前置0的数字的毫秒(000-999)
  • AP - 切换为AM/PM显示。AP将被“AM”或“PM”替换。
  • ap - 切换为am/pm显示。ap将被“am”或“pm”替换。

所有其他输入字符都将被忽略。

格式字符串实例(假设这个QTime为14:13:09.042)

  • “hh:mm:ss.zzz”的结果将是“14:13:09.042”
  • “h:m:s ap”的结果将是“2:13:9 pm”

也可以参考QDate::toString()和QTime::toString()。

QString QTime::toString ( Qt::DateFormat f = Qt::TextDate ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

返回一个字符串的时间。f参数决定了结果字符串的格式。

如果f是Qt::TextDate,字符串格式是HH:MM:SS,比日午夜前一秒是“23:59:59”。

如果f是Qt::ISODate,字符串格式遵循ISO 8601表示时间的说明,也就是HH:MM:SS。

如果f是Qt::LocalDate,字符串格式依赖于系统的本地设置。


相关函数

QDataStream & operator<< ( QDataStream & s, const QTime & t )

写时间t到流s中。

也可以参考QDataStream操作符的格式

QDataStream & operator>> ( QDataStream & s, QTime & t )

从流s中读取一个时间到t中。

也可以参考QDataStream操作符的格式


这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。


Copyright © 2002 Trolltech Trademarks 译者:Cavendish
Qt 3.0.5版