Sur cette page

QTime Class

La classe QTime fournit des fonctions d'horloge. Plus d'informations...

En-tête : #include <QTime>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Cette classe est fortement comparable.

Remarque : Toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

QTime()
QTime(int h, int m, int s = 0, int ms = 0)
QTime addMSecs(int ms) const
QTime addSecs(int s) const
int hour() const
bool isNull() const
bool isValid() const
int minute() const
int msec() const
int msecsSinceStartOfDay() const
int msecsTo(QTime t) const
int second() const
int secsTo(QTime t) const
bool setHMS(int h, int m, int s, int ms = 0)
QString toString(const QString &format) const
QString toString(QStringView format) const
QString toString(Qt::DateFormat format = Qt::TextDate) const

Membres publics statiques

QTime currentTime()
QTime fromMSecsSinceStartOfDay(int msecs)
QTime fromString(const QString &string, const QString &format)
(since 6.0) QTime fromString(QStringView string, QStringView format)
(since 6.0) QTime fromString(QStringView string, Qt::DateFormat format = Qt::TextDate)
(since 6.0) QTime fromString(const QString &string, QStringView format)
QTime fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
bool isValid(int h, int m, int s, int ms = 0)
bool operator!=(const QTime &lhs, const QTime &rhs)
bool operator<(const QTime &lhs, const QTime &rhs)
QDataStream &operator<<(QDataStream &out, QTime time)
bool operator<=(const QTime &lhs, const QTime &rhs)
bool operator==(const QTime &lhs, const QTime &rhs)
bool operator>(const QTime &lhs, const QTime &rhs)
bool operator>=(const QTime &lhs, const QTime &rhs)
QDataStream &operator>>(QDataStream &in, QTime &time)

Description détaillée

Un objet QTime contient une heure, qu'il peut exprimer en nombre d'heures, de minutes, de secondes et de millisecondes depuis minuit. Il fournit des fonctions permettant de comparer les temps et de manipuler un temps en ajoutant un certain nombre de millisecondes. Les objets QTime doivent être transmis par valeur plutôt que par référence à const ; ils se présentent simplement sous la forme d'un paquetage int.

QTime utilise le format d'horloge 24 heures ; il n'a pas de notion de AM/PM. Contrairement à QDateTime, QTime ne connaît pas les fuseaux horaires ni l'heure d'été (DST).

Un objet QTime est généralement créé soit en indiquant explicitement le nombre d'heures, de minutes, de secondes et de millisecondes, soit en utilisant la fonction statique currentTime(), qui crée un objet QTime représentant l'heure locale du système.

Les fonctions hour(), minute(), second() et msec() permettent d'accéder au nombre d'heures, de minutes, de secondes et de millisecondes de l'heure. La même information est fournie sous forme de texte par la fonction toString().

Les fonctions addSecs() et addMSecs() fournissent l'heure un nombre donné de secondes ou de millisecondes plus tard qu'une heure donnée. De même, le nombre de secondes ou de millisecondes entre deux heures peut être trouvé en utilisant secsTo() ou msecsTo().

QTime fournit un ensemble complet d'opérateurs pour comparer deux objets QTime ; un temps antérieur est considéré comme plus petit qu'un temps postérieur ; si A.msecsTo(B) est positif, alors A < B.

Les objets QTime peuvent également être créés à partir d'une représentation textuelle à l'aide de fromString() et convertis en une représentation sous forme de chaîne de caractères à l'aide de toString(). Toutes les conversions vers et depuis des formats de chaînes de caractères sont effectuées en utilisant la locale C. Pour les conversions localisées, voir QLocale.

Voir également QDate et QDateTime.

Documentation des fonctions membres

[constexpr] QTime::QTime()

Construit un objet de temps nul. Pour un temps nul, isNull() renvoie true et isValid() renvoie false. Si vous avez besoin d'une heure nulle, utilisez QTime(0, 0). Pour le début d'une journée, voir QDate::startOfDay().

Voir également isNull() et isValid().

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

Construit une heure avec l'heure h, la minute m, la seconde s et la milliseconde ms.

h doit être compris entre 0 et 23, m et s doivent être compris entre 0 et 59, et ms doit être compris entre 0 et 999.

Voir également isValid().

QTime QTime::addMSecs(int ms) const

Renvoie un objet QTime contenant l'heure ms en millisecondes plus tard que l'heure de cet objet (ou plus tôt si ms est négatif).

Notez que l'heure s'arrêtera si elle dépasse minuit. Voir addSecs() pour un exemple.

Renvoie une heure nulle si cette heure n'est pas valide.

Voir aussi addSecs(), msecsTo(), et QDateTime::addMSecs().

QTime QTime::addSecs(int s) const

Renvoie un objet QTime contenant un temps s secondes plus tard que le temps de cet objet (ou plus tôt si s est négatif).

Notez que l'heure s'arrêtera si elle dépasse minuit.

Renvoie une heure nulle si cette heure n'est pas valide.

Exemple :

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

Voir aussi addMSecs(), secsTo() et QDateTime::addSecs().

[static] QTime QTime::currentTime()

Renvoie l'heure actuelle telle qu'elle est indiquée par l'horloge du système.

Notez que la précision dépend de la précision du système d'exploitation sous-jacent ; tous les systèmes n'offrent pas une précision de l'ordre de la milliseconde.

En outre, currentTime() n'augmente que chaque jour ; il diminue de 24 heures à chaque fois que minuit passe ; et, en outre, les changements qu'il subit peuvent ne pas correspondre au temps écoulé, si une transition vers l'heure d'été intervient.

Voir également QDateTime::currentDateTime() et QDateTime::currentDateTimeUtc().

[static constexpr] QTime QTime::fromMSecsSinceStartOfDay(int msecs)

Renvoie une nouvelle instance de QTime dont l'heure correspond au nombre de msecs depuis le début de la journée, c'est-à-dire depuis 00:00:00.

Si msecs est en dehors de la plage valide, une instance QTime invalide sera renvoyée.

Voir aussi msecsSinceStartOfDay().

[static] QTime QTime::fromString(const QString &string, const QString &format)

Renvoie l'adresse QTime représentée par l'adresse string, en utilisant l'adresse format donnée, ou une heure invalide si la chaîne ne peut pas être analysée.

Ces expressions peuvent être utilisées pour le format :

ExpressionSortie
hL'heure sans le zéro initial (0 à 23 ou 1 à 12 si affichage AM/PM)
hhL'heure avec un zéro en tête (00 à 23 ou 01 à 12 si affichage AM/PM)
HL'heure sans le zéro initial (0 à 23, même avec l'affichage AM/PM)
HHL'heure avec un zéro en tête (00 à 23, même avec l'affichage AM/PM)
mLes minutes sans le zéro initial (0 à 59)
mmLa minute avec un zéro en tête (00 à 59)
sLa seconde entière, sans zéro initial (0 à 59)
ssLa seconde entière, avec un zéro initial le cas échéant (00 à 59)
z ou zzLa partie fractionnaire de la seconde, telle qu'elle suit habituellement un point décimal, sans nécessiter de zéro à la fin (0 à 999). Ainsi, "s.z" correspond aux secondes avec jusqu'à trois chiffres de la partie fractionnaire fournissant la précision de la milliseconde, sans avoir besoin de zéros à la fin. Par exemple, "s.z" reconnaîtrait "00.250" ou "0.25" comme représentant un quart de seconde dans la minute.
zzzPartie fractionnaire à trois chiffres de la seconde, avec une précision de l'ordre de la milliseconde, y compris les zéros de fin le cas échéant (000 à 999). Par exemple, "ss.zzz" rejetterait "0.25" mais reconnaîtrait "00.250" comme représentant un quart de seconde dans sa minute.
AP, A, ap, a, aP ou ApSoit "AM" pour une heure antérieure à 12:00, soit "PM" pour une heure ultérieure, avec une correspondance insensible à la casse.

Tous les autres caractères d'entrée seront traités comme du texte. Toute séquence non vide de caractères entre guillemets simples sera également traitée (sans les guillemets) comme du texte et ne sera pas interprétée comme une expression.

QTime time = QTime::fromString("1mm12car00", "m'mm'hcarss");
// time is 12:01.00

Si le format n'est pas respecté, une adresse QTime invalide est renvoyée. Les expressions qui n'attendent pas de zéros en tête (h, m, s et z) sont gourmandes. Cela signifie qu'elles utiliseront deux chiffres (ou trois, pour z) même si cela les place en dehors de la plage des valeurs acceptées et laisse trop peu de chiffres pour d'autres sections. Par exemple, la chaîne suivante aurait pu signifier 00:07:10, mais le m prend deux chiffres, ce qui donne une heure invalide :

QTime time = QTime::fromString("00:710", "hh:ms"); // invalid

Tout champ qui n'est pas représenté dans le format sera mis à zéro. Par exemple, les champs qui ne sont pas représentés dans le format seront mis à zéro :

QTime time = QTime::fromString("1.30", "m.s");
// time is 00:01:30.000

Note : Si les formes localisées de am ou pm (les formats AP, ap, Ap, aP, A ou a) doivent être reconnues, utilisez QLocale::system().toTime().

Note : Si un caractère de format est répété plus de fois que l'expression la plus longue du tableau ci-dessus qui l'utilise, cette partie du format sera lue comme plusieurs expressions sans séparateur entre elles ; la plus longue ci-dessus, éventuellement répétée autant de fois qu'il y a de copies de celle-ci, se terminant par un résidu qui peut être une expression plus courte. Ainsi, 'HHHHH' correspondrait à "08088" ou "080808" et mettrait l'heure à 8 ; si la chaîne temporelle contenait "070809", elle "correspondrait" mais produirait un résultat incohérent, conduisant à une heure invalide.

Voir également toString(), QDateTime::fromString(), QDate::fromString(), QLocale::toTime() et QLocale::toDateTime().

[static, since 6.0] QTime QTime::fromString(QStringView string, QStringView format)

Cette fonction surcharge QTime::fromString().

Cette fonction a été introduite dans Qt 6.0.

[static, since 6.0] QTime QTime::fromString(QStringView string, Qt::DateFormat format = Qt::TextDate)

Cette fonction surcharge QTime::fromString().

Cette fonction a été introduite dans Qt 6.0.

[static, since 6.0] QTime QTime::fromString(const QString &string, QStringView format)

Cette fonction surcharge QTime::fromString().

Cette fonction a été introduite dans Qt 6.0.

[static] QTime QTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)

Renvoie l'heure représentée dans string sous forme de QTime en utilisant le format donné, ou une heure invalide si cela n'est pas possible.

Il s'agit d'une fonction surchargée.

Voir aussi toString() et QLocale::toTime().

int QTime::hour() const

Renvoie la partie heure (0 à 23) de l'heure.

Retourne -1 si l'heure n'est pas valide.

Voir aussi minute(), second(), et msec().

[constexpr] bool QTime::isNull() const

Renvoie true si l'heure est nulle (c'est-à-dire si l'objet QTime a été construit à l'aide du constructeur par défaut) ; sinon, renvoie false. Une heure nulle est également une heure invalide.

Voir aussi isValid().

bool QTime::isValid() const

Renvoie true si l'heure est valide, sinon renvoie false. Par exemple, l'heure 23:30:55.746 est valide, mais 24:12:30 ne l'est pas.

Voir aussi isNull().

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

Renvoie true si l'heure spécifiée est valide, sinon renvoie false.

L'heure est valide si h est compris entre 0 et 23, si m et s sont compris entre 0 et 59 et si ms est compris entre 0 et 999.

Exemple :

QTime::isValid(21, 10, 30); // returns true
QTime::isValid(22, 5,  62); // returns false

Cette fonction surcharge QTime::isValid().

int QTime::minute() const

Renvoie la partie minute (0 à 59) de l'heure.

Retourne -1 si l'heure n'est pas valide.

Voir aussi hour(), second(), et msec().

int QTime::msec() const

Renvoie la partie milliseconde (0 à 999) de l'heure.

Retourne -1 si l'heure n'est pas valide.

Voir aussi hour(), minute(), et second().

[constexpr] int QTime::msecsSinceStartOfDay() const

Renvoie le nombre de msecs depuis le début de la journée, c'est-à-dire depuis 00:00:00.

Voir aussi fromMSecsSinceStartOfDay().

int QTime::msecsTo(QTime t) const

Renvoie le nombre de millisecondes entre cette heure et t. Si t est antérieur à cette heure, le nombre de millisecondes renvoyé est négatif.

Comme QTime mesure le temps à l'intérieur d'une journée et qu'il y a 86400 secondes dans une journée, le résultat est toujours compris entre -86400000 et 86400000 ms.

Renvoie 0 si l'une ou l'autre des heures n'est pas valide.

Voir aussi secsTo(), addMSecs() et QDateTime::msecsTo().

int QTime::second() const

Renvoie la deuxième partie (0 à 59) de l'heure.

Retourne -1 si l'heure n'est pas valide.

Voir aussi hour(), minute(), et msec().

int QTime::secsTo(QTime t) const

Renvoie le nombre de secondes entre cette heure et t. Si t est antérieur à cette heure, le nombre de secondes renvoyé est négatif.

Comme QTime mesure le temps à l'intérieur d'une journée et qu'il y a 86400 secondes dans une journée, le résultat est toujours compris entre -86400 et 86400.

secsTo() ne prend pas en compte les millisecondes.

Retourne 0 si l'une ou l'autre des heures n'est pas valide.

Voir aussi addSecs() et QDateTime::secsTo().

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

Définit l'heure en heures h, minutes m, secondes s et millisecondes ms.

h doit être compris entre 0 et 23, m et s doivent être compris entre 0 et 59, et ms doit être compris entre 0 et 999. Renvoie true si l'heure définie est valide ; sinon, renvoie false.

Voir aussi isValid().

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

QString QTime::toString(QStringView format) const

Renvoie une chaîne de caractères représentant l'heure.

Le paramètre format détermine le format de la chaîne de résultat. Si l'heure n'est pas valide, une chaîne vide sera renvoyée.

Les expressions suivantes peuvent être utilisées :

ExpressionRésultat
hL'heure sans le zéro initial (0 à 23 ou 1 à 12 pour l'affichage AM/PM)
hhL'heure avec un zéro en tête (00 à 23 ou 01 à 12 si affichage AM/PM)
HL'heure sans le zéro initial (0 à 23, même avec l'affichage AM/PM)
HHL'heure avec un zéro en tête (00 à 23, même avec l'affichage AM/PM)
mLes minutes sans le zéro initial (0 à 59)
mmLa minute avec un zéro en tête (00 à 59)
sLa seconde entière, sans zéro initial (0 à 59)
ssLa seconde entière, avec un zéro initial le cas échéant (00 à 59)
z ou zzLa partie fractionnaire de la seconde, après la virgule, sans zéro à la fin. Ainsi, "s.z" indique les secondes avec toute la précision disponible (milliseconde) sans les zéros de fin (0 à 999). Par exemple, "s.z" produirait "0.25" pour un quart de seconde dans une minute.
zzzLa partie fractionnaire de la seconde, avec une précision de l'ordre de la milliseconde, y compris les zéros de fin le cas échéant (000 à 999). Par exemple, "ss.zzz" produira "00.250" au quart de seconde près.
AP ou AUtiliser l'affichage AM/PM. A/AP sera remplacé par "AM" ou "PM". Dans les formes localisées (uniquement pour QLocale::toString()), le texte adapté au contexte local est converti en majuscules.
ap ou aUtiliser l'affichage am/pm. a/ap sera remplacé par 'am' ou 'pm'. Dans les formes localisées (uniquement pour QLocale::toString()), le texte local est converti en minuscules.
aP ou ApUtiliser l'affichage AM/PM (depuis la version 6.3). aP/Ap sera remplacé par 'AM' ou 'PM'. Dans les formes localisées (uniquement pour QLocale::toString()), le texte local approprié (renvoyé par QLocale::amText() ou QLocale::pmText()) est utilisé sans changement de casse.
tAbréviation du fuseau horaire (par exemple "CEST"). Notez que les abréviations des fuseaux horaires ne sont pas uniques. En particulier, fromString() ne peut pas analyser cette abréviation.
ttLe décalage du fuseau horaire par rapport à UTC, sans les deux-points entre les heures et les minutes (par exemple "+0200").
tttLe décalage du fuseau horaire par rapport à UTC avec deux points entre les heures et les minutes (par exemple "+02:00").
ttttLe nom du fuseau horaire, tel que fourni par QTimeZone::displayName() avec le type QTimeZone::LongName. Cela peut dépendre du système d'exploitation utilisé. Si un tel nom n'est pas disponible, l'ID IANA de la zone (par exemple "Europe/Berlin") peut être utilisé. Il se peut qu'il n'indique pas si l'heure de la date était en heure d'été ou en heure normale, ce qui peut entraîner une ambiguïté si l'heure de la date tombe dans une heure répétée par une transition entre les deux.

Note : Pour obtenir des formes localisées de AM ou PM (les formats AP, ap, A, a, aP ou Ap ) ou des représentations de fuseaux horaires (les formats t ), utilisez QLocale::system().toString().

Lorsque le fuseau horaire ne peut pas être déterminé ou qu'aucune représentation appropriée n'est disponible, les formulaires t pour le représenter peuvent être ignorés. Voir QTimeZone::displayName() pour plus de détails sur les cas où il renvoie une chaîne vide.

Toute séquence non vide de caractères entre guillemets simples sera incluse mot pour mot dans la chaîne de sortie (sans les guillemets), même si elle contient des caractères de formatage. Deux guillemets simples consécutifs ("'''") sont remplacés par un guillemet simple dans la sortie. Tous les autres caractères de la chaîne de format sont inclus tels quels dans la chaîne de sortie.

Les formats sans séparateur (par exemple "hhmm") sont supportés mais doivent être utilisés avec précaution, car les chaînes résultantes ne sont pas toujours lisibles de manière fiable (par exemple, si "Hm" produit "212", cela peut signifier soit 02:12, soit 21:02).

Exemples de chaînes de format (en supposant que le site QTime soit 14:13:09.042)

FormatRésultat
hh:mm:ss.zzz14:13:09.042
h:m:s ap2:13:9 pm
H:m:s a14:13:9 pm

Note : Si un caractère de format est répété plus de fois que l'expression la plus longue du tableau ci-dessus qui l'utilise, cette partie du format sera lue comme plusieurs expressions sans séparateur entre elles ; la plus longue ci-dessus, éventuellement répétée autant de fois qu'il y a de copies d'elle, se terminant par un résidu qui peut être une expression plus courte. Ainsi, 'HHHHH' pour l'heure 08:00 contribuera à "08088" à la sortie.

Voir aussi fromString(), QDate::toString(), QDateTime::toString() et QLocale::toString().

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

Renvoie l'heure sous forme de chaîne de caractères. Le paramètre format détermine le format de la chaîne.

Si format est Qt::TextDate, le format de la chaîne est HH:mm:ss ; par exemple, 1 seconde avant minuit serait "23:59:59".

Si format est Qt::ISODate, le format de la chaîne correspond à la spécification étendue de l'ISO 8601 pour les représentations de dates, représentées par HH:mm:ss. Pour inclure les millisecondes dans la date ISO 8601, utilisez format Qt::ISODateWithMs , qui correspond à HH:mm:ss.zzz.

Si format est Qt::RFC2822Date, la chaîne est formatée d'une manière compatible avec la RFC 2822. Un exemple de ce formatage est "23:59:20".

Si l'heure n'est pas valide, une chaîne vide sera renvoyée.

Cette fonction surcharge QTime::toString().

Voir aussi fromString(), QDate::toString(), QDateTime::toString(), et QLocale::toString().

Non-membres apparentés

[constexpr noexcept] bool operator!=(const QTime &lhs, const QTime &rhs)

Renvoie true si lhs est différent de rhs; sinon, renvoie false.

[constexpr noexcept] bool operator<(const QTime &lhs, const QTime &rhs)

Renvoie true si lhs est antérieur à rhs; sinon renvoie false.

QDataStream &operator<<(QDataStream &out, QTime time)

Écrit time dans le flux out.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

[constexpr noexcept] bool operator<=(const QTime &lhs, const QTime &rhs)

Renvoie true si lhs est antérieur ou égal à rhs; sinon renvoie false.

[constexpr noexcept] bool operator==(const QTime &lhs, const QTime &rhs)

Renvoie true si lhs est égal à rhs; sinon renvoie false.

[constexpr noexcept] bool operator>(const QTime &lhs, const QTime &rhs)

Renvoie true si lhs est postérieur à rhs; sinon renvoie false.

[constexpr noexcept] bool operator>=(const QTime &lhs, const QTime &rhs)

Renvoie true si lhs est postérieur ou égal à rhs; sinon renvoie false.

QDataStream &operator>>(QDataStream &in, QTime &time)

Lit une heure à partir du flux in dans le flux time.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.