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) |
No miembros relacionados
| 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ón | Salida |
|---|---|
| h | La hora sin cero inicial (de 0 a 23 o de 1 a 12 si se visualiza AM/PM) |
| hh | La hora con un cero inicial (de 00 a 23 o de 01 a 12 si se visualiza AM/PM) |
| H | La hora sin un cero inicial (0 a 23, incluso con visualización AM/PM) |
| HH | La hora con un cero a la izquierda (00 a 23, incluso con visualización AM/PM) |
| m | Minuto sin cero inicial (0 a 59) |
| mm | El minuto con un cero inicial (00 a 59) |
| s | El segundo entero, sin cero inicial (0 a 59) |
| ss | El segundo entero, con un cero inicial cuando proceda (00 a 59) |
| z o zz | La 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. |
| zzz | Parte 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 Ap | AM" 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.
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:
Cualquier campo que no esté representado en el formato se pondrá a cero. Por ejemplo:
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:
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ón | Salida |
|---|---|
| h | La hora sin un cero inicial (de 0 a 23 o de 1 a 12 si se muestra AM/PM) |
| hh | La hora con un cero inicial (de 00 a 23 o de 01 a 12 si se visualiza AM/PM) |
| H | La hora sin un cero inicial (0 a 23, incluso con visualización AM/PM) |
| HH | La hora con un cero a la izquierda (00 a 23, incluso con visualización AM/PM) |
| m | Minuto sin cero inicial (0 a 59) |
| mm | El minuto con un cero inicial (00 a 59) |
| s | El segundo entero, sin cero inicial (0 a 59) |
| ss | El segundo entero, con un cero inicial cuando proceda (00 a 59) |
| z o zz | La 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. |
| zzz | La 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 A | Utilice 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 a | Utilice 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 Ap | Utilice 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. |
| t | La 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. |
| tt | Desplazamiento de la zona horaria con respecto a UTC sin dos puntos entre las horas y los minutos (por ejemplo, "+0200"). |
| ttt | Desplazamiento de la zona horaria con respecto a UTC con dos puntos entre las horas y los minutos (por ejemplo, "+02:00"). |
| tttt | El 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)
| Formato | Resultado |
|---|---|
| hh:mm:ss.zzz | 14:13:09.042 |
| h:m:s ap | 14:13:9 h |
| H:m:s a | 14: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.