Класс QTime
Класс QTime предоставляет функции для работы со временем. Подробнее...
| Заголовок: | #include <QTime> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Примечание: Все функции в этом классе являются повторно входящими.
Открытые функции
| QTime(int h, int m, int s = 0, int ms = 0) | |
| QTime() | |
| 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(Qt::DateFormat format = Qt::TextDate) const |
| QString | toString(QStringView format) const |
Статические открытые члены
| QTime | currentTime() |
| QTime | fromMSecsSinceStartOfDay(int msecs) |
| QTime | fromString(const QString &string, Qt::DateFormat format = Qt::TextDate) |
| QTime | fromString(QStringView string, Qt::DateFormat format = Qt::TextDate) |
| QTime | fromString(QStringView string, QStringView format) |
| QTime | fromString(const QString &string, QStringView format) |
| QTime | fromString(const QString &string, const QString &format) |
| bool | isValid(int h, int m, int s, int ms = 0) |
Связанные нечлены
| bool | operator!=(QTime lhs, QTime rhs) |
| bool | operator<(QTime lhs, QTime rhs) |
| QDataStream & | operator<<(QDataStream &out, QTime time) |
| bool | operator<=(QTime lhs, QTime rhs) |
| bool | operator==(QTime lhs, QTime rhs) |
| bool | operator>(QTime lhs, QTime rhs) |
| bool | operator>=(QTime lhs, QTime rhs) |
| QDataStream & | operator>>(QDataStream &in, QTime &time) |
Подробное описание
Объект QTime содержит время, которое он может выразить как количество часов, минут, секунд и миллисекунд с момента полуночи. Он предоставляет функции для сравнения времен и для манипулирования временем, добавляя определённое количество миллисекунд. Объекты QTime должны передаваться по значению, а не по ссылке на const; они просто упаковывают int.
QTime использует формат 24-часовых часов; он не имеет понятия AM/PM. В отличие от QDateTime, QTime не знает о часовых поясах или летнем времени.
Объект QTime обычно создается либо путем явного указания количества часов, минут, секунд и миллисекунд, либо с помощью статической функции currentTime(), которая создаёт объект QTime, представляющий локальное время системы.
Функции hour(), minute(), second() и msec() предоставляют доступ к количеству часов, минут, секунд и миллисекунд времени. Та же информация предоставляется в текстовом формате функцией toString().
Функции addSecs() и addMSecs() предоставляют время, которое на заданное количество секунд или миллисекунд позже заданного времени. Соответственно, количество секунд или миллисекунд между двумя временами можно найти, используя secsTo() или msecsTo().
QTime предоставляет полный набор операторов для сравнения двух объектов QTime; более раннее время считается меньше, чем более позднее; если A.msecsTo(B) положительно, то A < B.
Объекты QTime также могут быть созданы из текстового представления с помощью fromString() и преобразованы в строковое представление с помощью toString(). Все преобразования в строковые форматы и из них выполняются с использованием локальной настройки C. Для локализованных преобразований см. QLocale.
Документация по функциям-членам
QString QTime::toString(QStringView format) const
QString QTime::toString(const QString &format) const
Возвращает время в виде строки. Параметр format определяет формат результирующей строки.
Можно использовать следующие выражения:
| Выражение | Вывод |
|---|---|
| h | Час без ведущего нуля (0 до 23 или 1 до 12, если используется отображение AM/PM) |
| hh | Час с ведущим нулём (00 до 23 или 01 до 12, если используется отображение AM/PM) |
| H | Час без ведущего нуля (0 до 23, даже при отображении AM/PM) |
| HH | Час с ведущим нулём (00 до 23, даже при отображении AM/PM) |
| m | Минута без ведущего нуля (0 до 59) |
| mm | Минута с ведущим нулём (00 до 59) |
| s | Полная секунда без ведущего нуля (0 до 59) |
| ss | Полная секунда с ведущим нулём, если применимо (00 до 59) |
| z | Дробная часть секунды после десятичной точки без хвостовых нулей (0 до 999). Таким образом, «s.z» сообщает о секундах с полной доступной (миллисекундной) точностью без хвостовых нулей. |
| zzz | Дробная часть секунды с точностью до миллисекунд, включая хвостовые нули, если применимо (000 до 999). |
| AP или A | Используйте отображение AM/PM. A/AP будет заменено на 'AM' или 'PM' |
| ap или a | Используйте отображение am/pm. a/ap будет заменено на 'am' или 'pm' |
| t | Временная зона (например, "CEST") |
Любая непустая последовательность символов, заключённая в одинарные кавычки, будет включена в строку вывода дословно (без кавычек), даже если она содержит символы форматирования. Два последовательных одинарных кавычки ("''") заменяются на один одинарный кавычку в выводе. Все остальные символы в строке формата включаются в строку вывода дословно.
Форматы без разделителей (например, "ddMM") поддерживаются, но использовать их нужно осторожно, так как полученные строки не всегда надёжно читаемы (например, если "dM" даёт "212", это может означать либо 2 декабря, либо 21 февраля).
Примеры строк формата (предполагается, что QTime равен 14:13:09.042, а системный локаль — en_US)
| Формат | Результат |
|---|---|
| hh:mm:ss.zzz | 14:13:09.042 |
| h:m:s ap | 2:13:9 pm |
| H:m:s a | 14:13:9 pm |
Если время недействительно, возвращается пустая строка.
Примечание: Если требуются локализованные формы am или pm (форматы AP, ap, A или a), используйте QLocale::system().toString().
См. также fromString(), QDate::toString(), QDateTime::toString() и QLocale::toString().
QTime::QTime(int h, int m, int s = 0, int ms = 0)
Создаёт время с часами h, минутами m, секундами s и миллисекундами ms.
h должно быть в диапазоне от 0 до 23, m и s — от 0 до 59, а ms — от 0 до 999.
См. также isValid().
QTime::QTime()
Создаёт объект времени null. Для объекта null isNull() возвращает true, а isValid() — false. Если вам нужно нулевое время, используйте QTime(0, 0). Для начала дня используйте QDate::startOfDay().
См. также isNull() и isValid().
QTime QTime::addMSecs(int ms) const
Возвращает объект QTime с временем, отстоящим на ms миллисекунд позже (или раньше, если ms отрицательно) от времени этого объекта.
Обратите внимание, что время перемотается, если оно пройдёт полночь. См. addSecs() для примера.
Возвращает null-время, если это время недействительно.
См. также addSecs(), msecsTo() и QDateTime::addMSecs().
QTime QTime::addSecs(int s) const
Возвращает объект QTime с временем, отстоящим на s секунд позже (или раньше, если s отрицательно) от времени этого объекта.
Обратите внимание, что время перемотается, если оно пройдёт полночь.
Возвращает null-время, если это время недействительно.
Пример:
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
См. также addMSecs(), secsTo() и QDateTime::addSecs().
[static] QTime QTime::currentTime()
Возвращает текущее время, полученное от системных часов.
Обратите внимание, что точность зависит от точности базовой операционной системы; не все системы обеспечивают точность до 1 миллисекунды.
Кроме того, currentTime() увеличивается только в течение каждого дня; оно уменьшается на 24 часа каждый раз, когда проходит полночь; и, помимо этого, изменения в нём могут не соответствовать прошедшему времени, если происходит переход на летнее время.
См. также QDateTime::currentDateTime() и QDateTime::currentDateTimeUtc().
[static] QTime QTime::fromMSecsSinceStartOfDay(int msecs)
Возвращает новый экземпляр QTime с временем, установленным на количество msecs миллисекунд с начала дня, т. е. с 00:00:00.
Если msecs выходит за пределы допустимого диапазона, возвращается недействительный QTime.
См. также msecsSinceStartOfDay().
[static] QTime QTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
Возвращает время, представленное в string в виде QTime с использованием заданного format или недействительное время, если это невозможно.
См. также toString() и QLocale::toTime().
[static, since 6.0] QTime QTime::fromString(QStringView string, Qt::DateFormat format = Qt::TextDate)
Это перегруженный метод.
Этот метод был представлен в Qt 6.0.
[static, since 6.0] QTime QTime::fromString(QStringView string, QStringView format)
Это перегруженный метод.
Этот метод был представлен в Qt 6.0.
[static, since 6.0] QTime QTime::fromString(const QString &string, QStringView format)
Это перегруженный метод.
Этот метод был представлен в Qt 6.0.
[static] QTime QTime::fromString(const QString &string, const QString &format)
Возвращает QTime, представленный в string, используя заданный format, или недействительное время, если строка не может быть обработана.
Эти выражения могут быть использованы для формата:
| Выражение | Вывод |
|---|---|
| h | Час без ведущего нуля (0 до 23 или 1 до 12, если используется отображение AM/PM) |
| hh | Час с ведущим нулём (00 до 23 или 01 до 12, если используется отображение AM/PM) |
| H | Час без ведущего нуля (0 до 23, даже при отображении AM/PM) |
| HH | Час с ведущим нулём (00 до 23, даже при отображении AM/PM) |
| m | Минута без ведущего нуля (0 до 59) |
| mm | Минута с ведущим нулём (00 до 59) |
| s | Полная секунда без ведущего нуля (0 до 59) |
| ss | Полная секунда с ведущим нулём, если применимо (00 до 59) |
| z | Дробная часть секунды после десятичной точки без хвостовых нулей (0 до 999). Таким образом, «s.z» сообщает о секундах с полной доступной (миллисекундной) точностью без хвостовых нулей. |
| zzz | Дробная часть секунды с точностью до миллисекунд, включая хвостовые нули, если применимо (000 до 999). |
| AP или A | Интерпретировать как время AM/PM. A/AP будет соответствовать 'AM' или 'PM'. |
| ap или a | Интерпретировать как время am/pm. a/ap будет соответствовать 'am' или 'pm'. |
Все другие символы ввода будут рассматриваться как текст. Любая непустая последовательность символов, заключённая в одинарные кавычки, также будет рассматриваться (без кавычек) как текст, а не интерпретироваться как выражения.
QTime time = QTime::fromString("1mm12car00", "m'mm'hcarss");
// time is 12:01.00 Если формат не удовлетворён, возвращается недействительный QTime. Выражения, которые не ожидают ведущих нулей (h, m, s и z), жадные. Это означает, что они будут использовать две цифры (или три для z), даже если это выведет их за пределы допустимых значений и оставит слишком мало цифр для других разделов. Например, следующая строка могла означать 00:07:10, но m захватит две цифры, что приведёт к недействительному времени:
QTime time = QTime::fromString("00:710", "hh:ms"); // invalid Любой раздел, который не представлен в формате, будет установлен в ноль. Например:
QTime time = QTime::fromString("1.30", "m.s");
// time is 00:01:30.000 Примечание: Если используются локализованные формы am или pm (форматы AP, ap, A или a), используйте QLocale::system().toTime().
См. также toString(), QDateTime::fromString(), QDate::fromString(), и QLocale::toTime().
int QTime::hour() const
Возвращает часть часа (от 0 до 23) времени.
Возвращает -1, если время недействительно.
См. также minute(), second(), и msec().
bool QTime::isNull() const
Возвращает true , если время равно null (т.е., объект QTime был создан с использованием конструктора по умолчанию); в противном случае возвращает false. Время null также является недействительным временем.
См. также isValid().
bool QTime::isValid() const
Возвращает true , если время действительное; в противном случае возвращает false. Например, время 23:30:55.746 действительное, а 24:12:30 — нет.
См. также isNull().
[static] bool QTime::isValid(int h, int m, int s, int ms = 0)
Это перегруженный метод.
Возвращает true , если указанное время действительное; в противном случае возвращает false.
Время действительное, если h находится в диапазоне от 0 до 23, m и s — в диапазоне от 0 до 59, а ms — в диапазоне от 0 до 999.
Пример:
QTime::isValid(21, 10, 30); // returns true QTime::isValid(22, 5, 62); // returns false
int QTime::minute() const
Возвращает часть минуты (от 0 до 59) времени.
Возвращает -1, если время недействительно.
См. также hour(), second(), и msec().
int QTime::msec() const
Возвращает часть миллисекунд (от 0 до 999) времени.
Возвращает -1, если время недействительно.
См. также hour(), minute(), и second().
int QTime::msecsSinceStartOfDay() const
Возвращает количество миллисекунд с начала дня, т.е. с 00:00:00.
См. также fromMSecsSinceStartOfDay().
int QTime::msecsTo(QTime t) const
Возвращает количество миллисекунд от текущего времени до времени t. Если t раньше текущего времени, возвращается отрицательное число миллисекунд.
Так как QTime измеряет время в течение дня, а в сутках 86400 секунд, результат всегда находится в диапазоне от -86400000 до 86400000 мс.
Возвращает 0, если одно из времен недействительно.
См. также secsTo(), addMSecs(), и QDateTime::msecsTo().
int QTime::second() const
Возвращает часть секунды (от 0 до 59) времени.
Возвращает -1, если время недействительно.
См. также hour(), minute(), и msec().
int QTime::secsTo(QTime t) const
Возвращает количество секунд от текущего времени до времени t. Если t раньше текущего времени, возвращается отрицательное число секунд.
Так как QTime измеряет время в течение дня, а в сутках 86400 секунд, результат всегда находится в диапазоне от -86400 до 86400.
secsTo() не учитывает миллисекунды.
Возвращает 0, если одно из времен недействительно.
См. также addSecs() и QDateTime::secsTo().
bool QTime::setHMS(int h, int m, int s, int ms = 0)
Устанавливает время на час h, минуту m, секунды s и миллисекунды ms.
h должно находиться в диапазоне от 0 до 23, m и s — в диапазоне от 0 до 59, а ms — в диапазоне от 0 до 999. Возвращает true , если установленное время действительное; в противном случае возвращает false.
См. также isValid().
QString QTime::toString(Qt::DateFormat format = Qt::TextDate) const
Это перегруженный метод.
Возвращает время в виде строки. Параметр format определяет формат строки.
Если format равен Qt::TextDate, формат строки — HH:mm:ss; например, за секунду до полуночи будет "23:59:59".
Если format равен Qt::ISODate, формат строки соответствует расширенному стандарту ISO 8601 для представления дат, представленным как HH:mm:ss. Чтобы включить миллисекунды в дату ISO 8601, используйте format Qt::ISODateWithMs, который соответствует HH:mm:ss.zzz.
Если format равен Qt::RFC2822Date, строка форматируется в соответствии с RFC 2822. Пример такого форматирования — "23:59:20".
Если время недействительно, возвращается пустая строка.
См. также fromString(), QDate::toString(), QDateTime::toString(), и QLocale::toString().
Связанные нечленные функции
bool operator!=(QTime lhs, QTime rhs)
Возвращает true , если lhs отличается от rhs; в противном случае возвращает false.
bool operator<(QTime lhs, QTime rhs)
Возвращает true , если lhs раньше rhs; в противном случае возвращает false.
QDataStream &operator<<(QDataStream &out, QTime time)
Записывает time в поток out.
См. также Сериализация типов данных Qt.
bool operator<=(QTime lhs, QTime rhs)
Возвращает true , если lhs раньше или равно rhs; в противном случае возвращает false.
bool operator==(QTime lhs, QTime rhs)
Возвращает true , если lhs равно rhs; в противном случае возвращает false.
bool operator>(QTime lhs, QTime rhs)
Возвращает true , если lhs позже rhs; в противном случае возвращает false.
bool operator>=(QTime lhs, QTime rhs)
Возвращает true , если lhs позже или равно rhs; в противном случае возвращает false.
QDataStream &operator>>(QDataStream &in, QTime &time)
Читает время из потока in в указанное time.
См. также Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtime.html