QTime類介紹

pamxy發表於2013-07-09

轉自:http://blog.csdn.net/wangrunmin/article/details/8801084

Qt中利用QTime類來控制時間,這裡簡單介紹一下QTime的成員函式的用法:

----------------------------------------------------------------------------------------------------------------------------------------

QTime::QTime()
預設建構函式,構造一個時,分,秒都為0的時間,如00:00:00.000(午夜)

QTime::QTime(int h, int m, int s=0, int ms = 0)
構造一個使用者指定時,分,秒的時間.
其引數有效值為:
h:0--23
m:0--59
ms:0--999

QTime QTime::addMSecs(int ms) const
返回一個當前時間物件之後或之前ms毫秒的時間物件(之前還是之後視ms的符號,如為正則之後,反之之前)
如:QTime time(3,0,0);
   QTime newTime1 = time.addMSecs(1000);
   QTime newTime2 = time.addMSecs(-1000);
則newTime1是一個比time所指定時間(03:00:00.000)延後1000毫秒也即1秒的時間(03:00:01.000),而newTime2則提前1000毫秒(02:59:59.000)

QTime QTime::addSecs(int nsecs) const
與addMSecs()相同,只是nsecs單位是秒.即返回一個當前時間物件之前或之後的時間物件.

int QTime::elapsed() const
返回最後一次呼叫start()或restart()到現在已經經過的毫秒數.如果經過了24小時之後,則計數器置0.如果系統時間設定改變,則結果不確定.

int QTime::hour() const
返回時間物件的小時,取值範圍(0--23)

int QTime::minute() const
返回時間物件的分鐘,取值範圍(0--59)

int QTime::second() const
返回時間物件的秒,取值範圍(0--59)

int QTime::msec() const
返回時間物件的毫秒,取值範圍(0--999)

bool QTime::isNull() const
如果時間物件等於00:00:00.000,則返回true;反之返回false.

bool QTime::isValid() const
如果時間物件是有效的,則返回true;反之返回false.(即:時,分,秒,毫秒都在其取值範圍之內)

int QTime::msecsTo(const QTime &t) const
返回當前時間物件到t所指定的時間之間的毫秒數.如果t早於當前時間物件的時間,則返回的值是負值.因為一天的時間是86400000毫秒,所以返回值範圍是-86400000--86400000

int QTime::secsTo(const QTime &t) const
與msecsTo()基本相同,只是返回的是秒數,返回值的有效範圍是-86400--86400

int QTime::restart()
設定當前時間物件的值為當前系統時間,並且返回從最後一次呼叫start()或restart()到現在的毫秒數.如果計數器超出24小時,則置0.如果計數器計數時系統時間設定改變,則結果不確定.

bool QTime::setHMS(int h, int m, int s, int ms = 0)
設定當前時間物件的時,分,秒和毫秒.如果給定的引數值有效,則返回true,否則返回false.

void QTime::start()
設定當前時間物件的值為當前系統時間,這個函式實際是結合restart()和elapsed()用來計數的.

QString QTime::toString(const QString &format) const
按照引數format指定的格式用字串形式輸出當前時間物件的時間.
引數format用來指定時,分,秒,毫秒的輸出格式.如(hh:mm:ss.zzz)
h:表示小時,範圍是0--23
hh:用兩位數表示小時,不足兩位的前面用0補足,如(0點:00,3點:03,11點:11)
m:表示分鐘,範圍0--59
mm:用兩位數表示分鐘,不足兩位的前面用0補足.
s:表示秒,範圍0--59
ss:用兩位數表示秒,不足兩位的前面用0補足.
z:表示毫秒,範圍0--999
zzz:用三位數表示毫秒,不足三位的前面用0補足.
AP:用AM/PM顯示.
ap:用ap/pm顯示.
例如:
QTime time(14,3,9,42);//設定時間為14:03:09.042
QString i = time.toString("hh:mm:ss.zzz");//結果為14:03:09.042
QString j = time.toString("h:m:s.z");//結果為14:3:9.42
QString m = time.toString("h:m:s.z AP");//結果為2:3:9.42 PM
QString n = time.toString("h:m:s.z ap");//結果為2:3:9.42 pm

QString QTime::toString(Qt::DateFormat f = Qt::TextDate) const
按照引數format指定的格式用字串形式輸出當前時間物件的時間.
引數的可選值:
Qt::TextDate:格式為HH:MM:SS
Qt::ISODate:遵循ISO8601的時間表示格式,同樣也為HH:MM:SS
Qt::LocalDate:字串格式依賴系統本地設定

----------------------------------------------------------------------------------------------------------------------------------------

靜態成員函式:

QTime QTime::currentTime()
返回當前的系統時間.

QTime QTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
使用引數format指定的格式根據引數string指定的時間返回一個時間物件。如果string指定的時間不合法,則返回一個無效的時間物件。
format可選值:
Qt::TextDate:格式為HH:MM:SS
Qt::ISODate:遵循ISO8601的時間表示格式,同樣也為HH:MM:SS
Qt::LocalDate:字串格式依賴系統本地設定

QTime QTime::fromString(const QString &string, const QString &format)
使用引數format指定的格式根據引數string指定的時間返回一個時間物件.如果string指定的時間不合法,則返回一個無效的時間物件.
format的格式參看QString QTime::toString(const QString &format) const.

bool QTime::isValid(int h, int m, int s, int ms = 0)
如果引數所指定的時間是合法的,則返回true;反之返回false.

----------------------------------------------------------------------------------------------------------------------------------------

靜態成員函式不依賴於物件,可以通過類直接呼叫,與物件無關:

如:獲取當前系統時間的小時部分時不需要定義QTime物件

int hour = QTime::currentTime().hour()


相關文章