Sur cette page

QTime Class

La classe QTime fournit des fonctions liées à l'heure. En savoir plus...

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

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

Comparaisons QTime

CatégorieTypes comparables
strongQTime

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 écoulées depuis minuit. Il fournit des fonctions permettant de comparer des heures et de manipuler une heure en y ajoutant un nombre de millisecondes. Les objets QTime doivent être passés par valeur plutôt que par référence à const ; ils encapsulent simplement int.

QTime utilise le format d’horloge de 24 heures ; il n’a pas de notion d’AM/PM. Contrairement à QDateTime, QTime ne tient pas compte des fuseaux horaires ni de 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. Ces mêmes informations sont fournies sous forme textuelle par la fonction toString().

Les fonctions addSecs() et addMSecs() renvoient l’heure située un nombre donné de secondes ou de millisecondes après une heure donnée. De même, le nombre de secondes ou de millisecondes entre deux heures peut être obtenu à l’aide de secsTo() ou msecsTo().

QTime fournit un ensemble complet d’opérateurs permettant de comparer deux objets QTime ; un moment antérieur est considéré comme inférieur à un moment 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 à l’aide de toString(). Toutes les conversions vers et depuis les formats de chaîne s’effectuent en utilisant les paramètres régionaux C. Pour les conversions localisées, voir QLocale.

Voir également QDate et QDateTime.

Documentation sur les fonctions membres

[constexpr] QTime::QTime()

Crée un objet de temps nul. Pour un temps nul, la fonction isNull() renvoie true et la fonction isValid() renvoie false. Si vous avez besoin d'un temps égal à zéro, utilisez QTime(0, 0). Pour le début d'une journée, consultez la fonction 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, les minutes m, les secondes s et les 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.

Voir également isValid().

QTime QTime::addMSecs(int ms) const

Renvoie un objet ` QTime ` contenant une heure ` ms ` millisecondes après l'heure de cet objet (ou avant si ` ms ` est négatif).

Notez que l'heure remettra à zéro si elle dépasse minuit. Voir addSecs() pour un exemple.

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

Voir également addSecs(), msecsTo() et QDateTime::addMSecs().

QTime QTime::addSecs(int s) const

Renvoie un objet ` QTime ` contenant une heure s, qui correspond à un moment situé secondes après l'heure de cet objet (ou avant, si la valeur de ` s ` est négative).

Notez que l'heure réinitialisera 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 également addMSecs(), secsTo() et QDateTime::addSecs().

[static] QTime QTime::currentTime()

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

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

De plus, la fonction currentTime() n'augmente qu’au cours d’une même journée ; elle diminue de 24 heures à chaque passage à minuit ; par ailleurs, ses variations peuvent ne pas correspondre au temps écoulé en cas de changement d’heure lié à l’heure d’été.

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

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

Renvoie une nouvelle instance d’ QTime dont l’heure est définie sur le nombre d’ msecs écoulées depuis le début de la journée, c’est-à-dire depuis 00:00:00.

Si msecs se situe en dehors de la plage valide, une valeur QTime non valide sera renvoyée.

Voir également msecsSinceStartOfDay().

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

Renvoie l'QTime représentée par la chaîne « string », en utilisant le format « format » fourni, ou une heure non valide si la chaîne ne peut pas être analysée.

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

ExpressionRésultat
hL'heure sans zéro non significatif (de 0 à 23 ou de 1 à 12 en cas d'affichage AM/PM)
hhL'heure avec un zéro initial (de 00 à 23 ou de 01 à 12 en affichage AM/PM)
HL'heure sans zéro initial (de 0 à 23, même avec l'affichage AM/PM)
HHL'heure avec un zéro en tête (de 00 à 23, même avec l'affichage AM/PM)
mLes minutes sans zéro initial (0 à 59)
mmLa minute avec un zéro devant (00 à 59)
sLa seconde entière, sans zéro initial (0 à 59)
ssLa seconde entière, avec un zéro devant si nécessaire (00 à 59)
z ou zzLa fraction de seconde, telle qu’elle suit habituellement la virgule décimale, sans nécessiter de zéros à la fin (0 à 999). Ainsi, « "s.z" » correspond aux secondes comportant jusqu’à trois chiffres pour la fraction, offrant une précision à la milliseconde près, sans nécessiter de zéros à la fin. Par exemple, « "s.z" » reconnaîtrait aussi bien « "00.250" » que « "0.25" » comme représentant un temps situé à un quart de seconde dans sa minute.
zzzPartie fractionnaire de la seconde à trois chiffres, avec une précision à la milliseconde, y compris les zéros non significatifs le cas échéant (de 000 à 999). Par exemple, "ss.zzz" rejetterait "0.25" mais reconnaîtrait "00.250" comme représentant un temps correspondant à un quart de seconde dans la minute.
AP, A, ap, a, aP ou ApSoit « AM » indiquant une heure antérieure à 12 h 00, soit « PM » pour les heures postérieures, la correspondance étant établie sans distinction de majuscules/minuscules.

Toute séquence de caractères non vide placée entre guillemets simples sera également traitée (une fois les guillemets supprimés) comme du texte et ne sera pas interprétée comme une expression. Deux guillemets simples consécutifs («''») sont interprétés comme un guillemet simple devant être trouvé dans l’entrée, plutôt que comme le début ou la fin d’une séquence littérale. Tous les autres caractères de l’entrée seront traités comme du texte littéral à rechercher dans la chaîne d’entrée. Par exemple :

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

Si le format n’est pas respecté, une erreur « QTime » est renvoyée.

Lorsque des champs numériques sont juxtaposés, sans séparateur pour interrompre les séquences de chiffres, une ambiguïté peut subsister quant à savoir si certains champs pouvant comporter un seul chiffre utilisent deux chiffres (car la valeur à représenter est supérieure à 9). Lorsque l’attribution de deux chiffres à un tel champ en laisserait trop peu pour les autres champs, et que la lecture à un seul chiffre est cohérente avec les autres champs, cette ambiguïté peut être résolue. Dans le cas contraire (lorsque plusieurs champs peuvent comporter un seul chiffre et qu’il resterait des chiffres disponibles si chacun n’en recevait qu’un), une résolution attribuant des chiffres supplémentaires aux champs précédents est préférable à une solution les attribuant aux champs suivants, à condition que les données restent cohérentes. Par exemple :

QTime time = QTime::fromString("00:710", "hh:ms"); // 7 mins, 10 secs after midnight

Tout champ non représenté dans le format sera défini sur zéro. Par exemple :

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

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

Remarque : 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 d’occurrences de celle-ci, se terminant par un résidu qui peut être une expression plus courte. Ainsi, ` 'HHHHH' ` correspondrait à ` "08088" ` ou à ` "080808" ` et fixerait l’heure à 8 ; si la chaîne d’heure contenait « 070809 », elle « correspondrait » mais produirait un résultat incohérent, conduisant à une heure non valide.

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 la fonction ` 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 la fonction ` 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 la fonction ` 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 l'string sous la forme d'un objet ` QTime ` à l'aide de l'format fournie, ou une heure non valide si cela n'est pas possible.

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

Voir également toString() et QLocale::toTime().

int QTime::hour() const

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

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

Voir également 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é créé à l'aide du constructeur par défaut) ; sinon, renvoie « false ». Une heure nulle est également une heure non valide.

Voir également 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 également isNull().

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

Renvoie « true » si l'heure indiquée est valide ; sinon, renvoie « false ».

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

Exemple :

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

Cette fonction surcharge la méthode ` QTime::isValid()`.

int QTime::minute() const

Renvoie la partie « minutes » (de 0 à 59) de l'heure.

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

Voir également hour(), second() et msec().

int QTime::msec() const

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

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

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

[constexpr] int QTime::msecsSinceStartOfDay() const

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

Voir également fromMSecsSinceStartOfDay().

int QTime::msecsTo(QTime t) const

Renvoie le nombre de millisecondes entre l'heure actuelle et t. Si t est antérieure à l'heure actuelle, le nombre de millisecondes renvoyé est négatif.

Comme QTime mesure le temps en jours et qu’un jour compte 86 400 secondes, le résultat est toujours compris entre -86 400 000 et 86 400 000 ms.

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

Voir également secsTo(), addMSecs() et QDateTime::msecsTo().

int QTime::second() const

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

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

Voir également hour(), minute() et msec().

int QTime::secsTo(QTime t) const

Renvoie le nombre de secondes entre l'heure actuelle et t. Si t est antérieure à l'heure actuelle, le nombre de secondes renvoyé est négatif.

Comme QTime mesure le temps au sein d’une journée et qu’une journée compte 86 400 secondes, le résultat est toujours compris entre -86 400 et 86 400.

La fonction secsTo() ne tient pas compte des millisecondes.

Renvoie 0 si l’une des heures n’est pas valide.

Voir également addSecs() et QDateTime::secsTo().

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

Définit l'heure sur h, les minutes sur m, les secondes sur s et les millisecondes sur 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 également 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 caractères résultante. 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 zéro initial (de 0 à 23 ou de 1 à 12 en cas d'affichage AM/PM)
hhL'heure avec un zéro initial (de 00 à 23 ou de 01 à 12 en cas d'affichage AM/PM)
HL'heure sans zéro initial (de 0 à 23, même avec l'affichage AM/PM)
HHL'heure avec un zéro en tête (de 00 à 23, même avec l'affichage AM/PM)
mLes minutes sans zéro initial (0 à 59)
mmLa minute avec un zéro devant (00 à 59)
sLa seconde entière, sans zéro initial (0 à 59)
ssLa seconde entière, avec un zéro devant si nécessaire (00 à 59)
z ou zzLa fraction de seconde, placée après la virgule, sans zéros à la fin. Ainsi, ` "s.z" ` renvoie les secondes avec la précision maximale disponible (en millisecondes), sans zéros à la fin (0 à 999). Par exemple, ` "s.z" ` produirait ` "0.25" ` pour un temps correspondant à un quart de seconde dans une minute.
zzzLa fraction de seconde, avec une précision en millisecondes, y compris les zéros finaux le cas échéant (de 000 à 999). Par exemple, "ss.zzz" donnerait "00.250" pour un temps correspondant à un quart de seconde dans une minute.
AP ou AUtilise l'affichage AM/PM. A/AP sera remplacé par « AM » ou « PM ». Dans les versions localisées (uniquement pertinent pour QLocale::toString()), le texte adapté aux paramètres régionaux est converti en majuscules.
ap ou aUtilise l'affichage am/pm. « a/ap » sera remplacé par « am » ou « pm ». Dans les versions localisées (uniquement pertinent pour QLocale::toString()), le texte adapté à la locale est converti en minuscules.
aP ou ApUtilise l'affichage AM/PM (depuis la version 6.3). aP/Ap sera remplacé par « AM » ou « PM ». Dans les formes localisées (uniquement pertinent pour QLocale::toString()), le texte adapté à la locale (renvoyé par QLocale::amText() ou QLocale::pmText()) est utilisé sans modification de casse.
tL'abréviation du fuseau horaire (par exemple « CEST »). Notez que les abréviations de fuseaux horaires ne sont pas uniques. En particulier, la fonction fromString() ne peut pas analyser cette valeur.
ttLe décalage horaire par rapport à l’UTC, sans deux-points entre les heures et les minutes (par exemple « +0200 »).
tttLe décalage horaire par rapport à l'UTC, avec deux points entre les heures et les minutes (par exemple « +02:00 »).
ttttLe nom du fuseau horaire, tel que fourni par la fonction QTimeZone::displayName() avec le type « QTimeZone::LongName ». Celui-ci peut dépendre du système d’exploitation utilisé. Si aucun nom de ce type n’est disponible, l’identifiant IANA du fuseau horaire (tel que « Europe/Berlin ») peut être utilisé. Il peut ne donner aucune indication quant à savoir si la date-heure correspondait à l’heure d’été ou à l’heure d’hiver, ce qui peut entraîner une ambiguïté si la date-heure se situe dans une heure qui se répète en raison d’un passage d’un fuseau horaire à l’autre.

Remarque : pour obtenir les formes localisées de « AM » ou « PM » (aux formats AP, ap, A, a, aP ou Ap ) ou des représentations de fuseau horaire (aux 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 formes t permettant de le représenter peuvent être ignorées. Voir QTimeZone::displayName() pour plus de détails sur les cas où cette fonction renvoie une chaîne vide.

Toute séquence non vide de caractères placée entre guillemets simples sera incluse telle quelle dans la chaîne de sortie (sans les guillemets), même si elle contient des caractères de mise en forme. Deux guillemets simples consécutifs («''») sont remplacés par un seul guillemet simple dans la sortie, plutôt que de marquer le début ou la fin d’une séquence littérale. 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éparateurs (par exemple « hhmm ») sont pris en charge 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 pourrait signifier soit 02:12, soit 21:02).

Exemples de chaînes de format (en supposant que l’ QTime e soit 14:13:09.042)

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

Remarque : 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 en a des exemplaires, se terminant par un résidu qui peut être une expression plus courte. Ainsi, « 'HHHHH' » pour l'heure 08:00 donnera « "08088" » en sortie.

Voir également 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 cette chaîne.

Si format vaut Qt::TextDate, le format de la chaîne est HH:mm:ss ; par exemple, 1 seconde avant minuit s'affichera sous la forme « 23:59:59 ».

format Si format vaut Qt::ISODate, le format de la chaîne correspond à la spécification étendue ISO 8601 pour la représentation des dates, sous la forme HH:mm:ss. Pour inclure les millisecondes dans la date ISO 8601, utilisez l'Qt::ISODateWithMs , qui correspond à HH:mm:ss.zzz.

Si l'format est Qt::RFC2822Date, la chaîne est formatée selon la norme 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 la fonction QTime::toString().

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

Éléments non membres associé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 dans le flux « time » sur out.

Voir également «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 valeur de temps à partir du flux in et l'enregistre dans le fichier time.

Voir également 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.