En esta página

QTime Class

La clase QTime proporciona funciones de tiempo de reloj. Más...

Cabecera: #include <QTime>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Esta clase es fuertemente comparable.

Nota: Todas las funciones de esta clase son reentrantes.

Funciones Públicas

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

Miembros públicos estáticos

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)

Descripción Detallada

Un objeto QTime contiene la hora de un reloj, que puede expresarse como el número de horas, minutos, segundos y milisegundos desde medianoche. Proporciona funciones para comparar tiempos y para manipular un tiempo añadiendo un número de milisegundos. Los objetos QTime deben pasarse por valor en lugar de por referencia a const; simplemente empaquetan int.

QTime utiliza el formato de reloj de 24 horas; no tiene el concepto de AM/PM. A diferencia de QDateTime, QTime no conoce las zonas horarias ni el horario de verano (DST).

Un objeto QTime se crea normalmente dando explícitamente el número de horas, minutos, segundos y milisegundos, o utilizando la función estática currentTime(), que crea un objeto QTime que representa la hora local del sistema.

Las funciones hour(), minute(), second() y msec() permiten acceder al número de horas, minutos, segundos y milisegundos de la hora. La misma información se proporciona en formato textual mediante la función toString().

Las funciones addSecs() y addMSecs() proporcionan la hora un determinado número de segundos o milisegundos más tarde que una hora dada. Del mismo modo, el número de segundos o milisegundos entre dos horas puede obtenerse mediante secsTo() o msecsTo().

QTime proporciona un conjunto completo de operadores para comparar dos objetos QTime; un tiempo anterior se considera menor que uno posterior; si A.msecsTo(B) es positivo, entonces A < B.

Los objetos QTime también pueden crearse a partir de una representación de texto mediante fromString() y convertirse a una representación de cadena mediante toString(). Todas las conversiones a y desde formatos de cadena se realizan utilizando la configuración regional de C. Para las conversiones localizadas, véase QLocale.

Véase también QDate y QDateTime.

Documentación de las funciones miembro

[constexpr] QTime::QTime()

Construye un objeto de tiempo nulo. Para una hora nula, isNull() devuelve true y isValid() devuelve false. Si necesitas una hora nula, utiliza QTime(0, 0). Para el inicio de un día, consulte QDate::startOfDay().

Véase también isNull() y isValid().

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

Construye una hora con hora h, minuto m, segundos s y milisegundos ms.

h debe estar en el rango de 0 a 23, m y s deben estar en el rango de 0 a 59, y ms debe estar en el rango de 0 a 999.

Véase también isValid().

QTime QTime::addMSecs(int ms) const

Devuelve un objeto QTime que contiene una hora ms milisegundos posterior a la hora de este objeto (o anterior si ms es negativo).

Tenga en cuenta que la hora se ajustará si pasa de medianoche. Véase addSecs() para un ejemplo.

Devuelve una hora nula si esta hora no es válida.

Véase también addSecs(), msecsTo() y QDateTime::addMSecs().

QTime QTime::addSecs(int s) const

Devuelve un objeto QTime que contiene una hora s segundos posterior a la hora de este objeto (o anterior si s es negativo).

Tenga en cuenta que la hora se ajustará si pasa de medianoche.

Devuelve una hora nula si esta hora no es válida.

Ejemplo:

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

Véase también addMSecs(), secsTo(), y QDateTime::addSecs().

[static] QTime QTime::currentTime()

Devuelve la hora actual indicada por el reloj del sistema.

Tenga en cuenta que la precisión depende de la precisión del sistema operativo subyacente; no todos los sistemas proporcionan una precisión de 1 milisegundo.

Además, currentTime() sólo aumenta dentro de cada día; descenderá 24 horas cada vez que pase la medianoche; y, aparte de esto, los cambios en ella pueden no corresponder al tiempo transcurrido, si interviene una transición de horario de verano.

Véase también QDateTime::currentDateTime() y QDateTime::currentDateTimeUtc().

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

Devuelve una nueva instancia de QTime con la hora ajustada al número de msecs desde el inicio del día, es decir, desde las 00:00:00.

Si msecs queda fuera del intervalo válido, se devolverá un QTime no válido.

Véase también msecsSinceStartOfDay().

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

Devuelve el QTime representado por el string, utilizando el format dado, o un tiempo inválido si la cadena no puede ser analizada.

Estas expresiones pueden utilizarse para el formato:

ExpresiónSalida
hLa hora sin cero inicial (de 0 a 23 o de 1 a 12 si se visualiza AM/PM)
hhLa hora con un cero inicial (de 00 a 23 o de 01 a 12 si se visualiza AM/PM)
HLa hora sin un cero inicial (0 a 23, incluso con visualización AM/PM)
HHLa hora con un cero a la izquierda (00 a 23, incluso con visualización AM/PM)
mMinuto sin cero inicial (0 a 59)
mmEl minuto con un cero inicial (00 a 59)
sEl segundo entero, sin cero inicial (0 a 59)
ssEl segundo entero, con un cero inicial cuando proceda (00 a 59)
z o zzLa parte fraccionaria del segundo, como la que seguiría normalmente a un punto decimal, sin necesidad de ceros a la izquierda (0 a 999). De este modo, "s.z" corresponde a los segundos con hasta tres dígitos de parte fraccionaria que proporcionan precisión de milisegundos, sin necesidad de ceros al final. Por ejemplo, "s.z" reconocería tanto "00.250" como "0.25" como representación de un tiempo de un cuarto de segundo en su minuto.
zzzParte fraccionaria de tres dígitos del segundo, con precisión de milisegundos, incluidos los ceros finales cuando proceda (de 000 a 999). Por ejemplo, "ss.zzz" rechazaría "0.25" pero reconocería que "00.250" representa un tiempo de un cuarto de segundo en su minuto.
AP, A, ap, a, aP o ApAM" indica una hora anterior a las 12:00 y "PM" una hora posterior.

Todos los demás caracteres se tratarán como texto. Cualquier secuencia no vacía de caracteres entre comillas simples también se tratará (sin las comillas) como texto y no se interpretará como una expresión.

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

Si no se cumple el formato, se devuelve un QTime no válido. Las expresiones que no esperan ceros a la izquierda (h, m, s y z) son codiciosas. Esto significa que utilizarán dos dígitos (o tres, en el caso de z) aunque esto las sitúe fuera del rango de valores aceptados y deje muy pocos dígitos para otras secciones. Por ejemplo, la siguiente cadena podría haber significado 00:07:10, pero la m tomará dos dígitos, resultando en una hora inválida:

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

Cualquier campo que no esté representado en el formato se pondrá a cero. Por ejemplo:

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

Nota: Si deben reconocerse formas localizadas de am o pm (los formatos AP, ap, Ap, aP, A o a), utilice QLocale::system().toTime().

Nota: Si un carácter de formato se repite más veces que la expresión más larga de la tabla anterior que lo utiliza, esta parte del formato se leerá como varias expresiones sin separador entre ellas; la más larga de arriba, posiblemente repetida tantas veces como copias haya de ella, terminando con un residuo que puede ser una expresión más corta. Así, 'HHHHH' coincidiría con "08088" o "080808" y pondría la hora a 8; si la cadena de hora contuviera "070809" "coincidiría" pero produciría un resultado incoherente, dando lugar a una hora no válida.

Véase también toString(), QDateTime::fromString(), QDate::fromString(), QLocale::toTime() y QLocale::toDateTime().

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

Esta función sobrecarga QTime::fromString().

Esta función se introdujo en Qt 6.0.

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

Esta función sobrecarga QTime::fromString().

Esta función se introdujo en Qt 6.0.

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

Esta función sobrecarga QTime::fromString().

Esta función se introdujo en Qt 6.0.

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

Devuelve la hora representada en string como QTime utilizando el format dado, o una hora inválida si esto no es posible.

Se trata de una función sobrecargada.

Véase también toString() y QLocale::toTime().

int QTime::hour() const

Devuelve la parte de la hora (0 a 23) de la hora.

Devuelve -1 si la hora no es válida.

Véase también minute(), second() y msec().

[constexpr] bool QTime::isNull() const

Devuelve true si la hora es nula (es decir, el objeto QTime se construyó utilizando el constructor por defecto); en caso contrario devuelve false. Una hora nula es también una hora inválida.

Véase también isValid().

bool QTime::isValid() const

Devuelve true si la hora es válida; en caso contrario devuelve false. Por ejemplo, la hora 23:30:55.746 es válida, pero 24:12:30 es inválida.

Véase también isNull().

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

Devuelve true si la hora especificada es válida; en caso contrario devuelve false.

La hora es válida si h está en el rango de 0 a 23, m y s están en el rango de 0 a 59, y ms está en el rango de 0 a 999.

Ejemplo:

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

Esta función sobrecarga QTime::isValid().

int QTime::minute() const

Devuelve la parte de los minutos (0 a 59) de la hora.

Devuelve -1 si la hora no es válida.

Véase también hour(), second() y msec().

int QTime::msec() const

Devuelve la parte en milisegundos (0 a 999) de la hora.

Devuelve -1 si la hora no es válida.

Véase también hour(), minute() y second().

[constexpr] int QTime::msecsSinceStartOfDay() const

Devuelve el número de mseg desde el inicio del día, es decir, desde las 00:00:00.

Véase también fromMSecsSinceStartOfDay().

int QTime::msecsTo(QTime t) const

Devuelve el número de milisegundos desde esta hora hasta t. Si t es anterior a esta hora, el número de milisegundos devuelto es negativo.

Como QTime mide el tiempo dentro de un día y hay 86400 segundos en un día, el resultado siempre está entre -86400000 y 86400000 ms.

Devuelve 0 si alguno de los tiempos no es válido.

Véase también secsTo(), addMSecs() y QDateTime::msecsTo().

int QTime::second() const

Devuelve la segunda parte (0 a 59) de la hora.

Devuelve -1 si la hora no es válida.

Véase también hour(), minute() y msec().

int QTime::secsTo(QTime t) const

Devuelve el número de segundos desde esta hora hasta t. Si t es anterior a esta hora, el número de segundos devuelto es negativo.

Como QTime mide el tiempo dentro de un día y hay 86400 segundos en un día, el resultado está siempre entre -86400 y 86400.

secsTo() no tiene en cuenta ningún milisegundo.

Devuelve 0 si alguna de las horas no es válida.

Véase también addSecs() y QDateTime::secsTo().

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

Establece la hora h, los minutos m, los segundos s y los milisegundos ms.

h debe estar en el rango de 0 a 23, m y s deben estar en el rango de 0 a 59, y ms debe estar en el rango de 0 a 999. Devuelve true si la hora establecida es válida; en caso contrario devuelve false.

Véase también isValid().

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

QString QTime::toString(QStringView format) const

Devuelve una cadena que representa la hora.

El parámetro format determina el formato de la cadena resultante. Si la hora no es válida, se devolverá una cadena vacía.

Se pueden utilizar las siguientes expresiones:

ExpresiónSalida
hLa hora sin un cero inicial (de 0 a 23 o de 1 a 12 si se muestra AM/PM)
hhLa hora con un cero inicial (de 00 a 23 o de 01 a 12 si se visualiza AM/PM)
HLa hora sin un cero inicial (0 a 23, incluso con visualización AM/PM)
HHLa hora con un cero a la izquierda (00 a 23, incluso con visualización AM/PM)
mMinuto sin cero inicial (0 a 59)
mmEl minuto con un cero inicial (00 a 59)
sEl segundo entero, sin cero inicial (0 a 59)
ssEl segundo entero, con un cero inicial cuando proceda (00 a 59)
z o zzLa parte fraccionaria del segundo, después del punto decimal, sin ceros a la izquierda. Así, "s.z" informa de los segundos con toda la precisión disponible (milisegundos) sin ceros a la izquierda (0 a 999). Por ejemplo, "s.z" produciría "0.25" para un tiempo de un cuarto de segundo en un minuto.
zzzLa parte fraccionaria del segundo, con precisión de milisegundos, incluidos los ceros finales cuando corresponda (de 000 a 999). Por ejemplo, "ss.zzz" produciría "00.250" para un tiempo de un cuarto de segundo en un minuto.
AP o AUtilice la visualización AM/PM. A/AP se sustituirá por "AM" o "PM". En las formas localizadas (sólo relevantes para QLocale::toString()), el texto apropiado para la localización se convierte a mayúsculas.
ap o aUtilice la visualización am/pm. a/ap se sustituirá por 'am' o 'pm'. En las formas localizadas (sólo en QLocale::toString()), el texto local se convierte a minúsculas.
aP o ApUtilice la visualización AM/PM (desde 6.3). aP/Ap se sustituirá por 'AM' o 'PM'. En las formas localizadas (sólo relevantes para QLocale::toString()), el texto apropiado para la localización (devuelto por QLocale::amText() o QLocale::pmText()) se utiliza sin cambiar las mayúsculas.
tLa abreviatura de la zona horaria (por ejemplo, "CEST"). Tenga en cuenta que las abreviaturas de zonas horarias no son únicas. En particular, fromString() no puede analizarla.
ttDesplazamiento de la zona horaria con respecto a UTC sin dos puntos entre las horas y los minutos (por ejemplo, "+0200").
tttDesplazamiento de la zona horaria con respecto a UTC con dos puntos entre las horas y los minutos (por ejemplo, "+02:00").
ttttEl nombre de la zona horaria, proporcionado por QTimeZone::displayName() con el tipo QTimeZone::LongName. Puede depender del sistema operativo utilizado. Si no se dispone de tal nombre, puede utilizarse el ID IANA de la zona (como "Europe/Berlin"). Puede no dar ninguna indicación de si la hora de la fecha estaba en horario de verano o en horario estándar, lo que puede dar lugar a ambigüedad si la hora de la fecha cae en una hora repetida por una transición entre los dos.

Nota: Para obtener formas localizadas de AM o PM (los formatos AP, ap, A, a, aP o Ap ) o de representaciones de zonas horarias (los formatos t ), utilice QLocale::system().toString().

Cuando no pueda determinarse la zona horaria o no se disponga de una representación adecuada de la misma, pueden omitirse los formatos t para representarla. Véase QTimeZone::displayName() para más detalles sobre cuándo devuelve una cadena vacía.

Cualquier secuencia de caracteres no vacía entre comillas simples se incluirá literalmente en la cadena de salida (sin las comillas), aunque contenga caracteres de formato. Dos comillas simples consecutivas ("''") se sustituyen por una comilla simple en la salida. Todos los demás caracteres de la cadena de formato se incluyen literalmente en la cadena de salida.

Los formatos sin separadores (por ejemplo, "hhmm") son compatibles, pero deben utilizarse con cuidado, ya que las cadenas resultantes no siempre son legibles de forma fiable (por ejemplo, si "Hm" produce "212", podría significar 02:12 o 21:02).

Ejemplo de cadenas de formato (suponiendo que QTime sea 14:13:09.042)

FormatoResultado
hh:mm:ss.zzz14:13:09.042
h:m:s ap14:13:9 h
H:m:s a14:13:9 pm

Nota: Si un carácter de formato se repite más veces que la expresión más larga de la tabla anterior que lo utiliza, esta parte del formato se leerá como varias expresiones sin separador entre ellas; la más larga de arriba, posiblemente repetida tantas veces como copias haya de ella, terminando con un residuo que puede ser una expresión más corta. Así, 'HHHHH' para la hora 08:00 aportará "08088" a la salida.

Véase también fromString(), QDate::toString(), QDateTime::toString() y QLocale::toString().

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

Devuelve la hora en forma de cadena. El parámetro format determina el formato de la cadena.

Si format es Qt::TextDate, el formato de la cadena es HH:mm:ss; por ejemplo, 1 segundo antes de medianoche sería "23:59:59".

Si format es Qt::ISODate, el formato de la cadena corresponde a la especificación ampliada ISO 8601 para representaciones de fechas, representadas por HH:mm:ss. Para incluir milisegundos en la fecha ISO 8601, utilice format Qt::ISODateWithMs , que corresponde a HH:mm:ss.zzz.

Si format es Qt::RFC2822Date, la cadena se formatea de manera compatible con RFC 2822. Un ejemplo de este formato es "23:59:20".

Si la hora no es válida, se devolverá una cadena vacía.

Esta función sobrecarga QTime::toString().

Véase también fromString(), QDate::toString(), QDateTime::toString() y QLocale::toString().

No miembros relacionados

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

Devuelve true si lhs es diferente de rhs; en caso contrario devuelve false.

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

Devuelve true si lhs es anterior a rhs; en caso contrario devuelve false.

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

Escribe time en el flujo out.

Véase también Serializar tipos de datos Qt.

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

Devuelve true si lhs es anterior o igual a rhs; en caso contrario devuelve false.

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

Devuelve true si lhs es igual a rhs; en caso contrario devuelve false.

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

Devuelve true si lhs es posterior a rhs; en caso contrario devuelve false.

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

Devuelve true si lhs es posterior o igual a rhs; en caso contrario devuelve false.

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

Lee una hora del flujo in en el time dado.

Ver también Serializar tipos de datos 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.