Spec-Zone.ru › Qt 6.1

Класс 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 не знает ничего о часовых поясах или летнем времени (DST).

Объект QTime обычно создается либо путем явного указания количества часов, минут, секунд и миллисекунд, либо с помощью статической функции currentTime(), которая создает объект QTime, представляющий местное время системы.

Функции hour(), minute(), second() и msec() предоставляют доступ к количеству часов, минут, секунд и миллисекунд времени. Та же информация предоставляется в текстовом формате функцией toString().

Функции addSecs() и addMSecs() предоставляют время на заданное количество секунд или миллисекунд позже, чем заданное время. Соответственно, количество секунд или миллисекунд между двумя временами можно найти, используя secsTo() или msecsTo().

QTime предоставляет полный набор операторов для сравнения двух объектов QTime; более раннее время считается меньше, чем более позднее; если A.msecsTo(B) положительно, то A < B.

Объекты QTime также можно создать из текстового представления, используя fromString(), и преобразовать в строковое представление с помощью toString(). Все преобразования в строковые и из строковых форматов выполняются с использованием локалей C. Для локализованных преобразований см. QLocale.

См. также QDate и QDateTime.

Документация по функциям-членам

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 Дробная часть секунды, после десятичной точки, без trailing нулей (0 до 999). Таким образом "s.z" сообщает секунды с максимальной доступной точностью (миллисекунды) без trailing нулей.
zzz Дробная часть секунды с точностью до миллисекунды, включая trailing нули, если применимо (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()

Создаёт объект времени без значения. Для такого объекта isNull() возвращает true, а isValid() — false. Если вам нужно время ноль, используйте QTime(0, 0). Для начала дня, см. QDate::startOfDay().

См. также isNull() и isValid().

QTime QTime::addMSecs(int ms) const

Возвращает объект QTime, содержащий время, на ms миллисекунд позже или раньше, чем время текущего объекта (в зависимости от знака ms).

Обратите внимание, что время будет переходить на следующий день, если оно превысит полночь. См. addSecs() для примера.

Возвращает время без значения, если текущее время некорректно.

См. также addSecs(), msecsTo() и QDateTime::addMSecs().

QTime QTime::addSecs(int s) const

Возвращает объект QTime, содержащий время, на s секунд позже или раньше, чем время текущего объекта (в зависимости от знака s).

Обратите внимание, что время будет переходить на следующий день, если оно превысит полночь.

Возвращает время без значения, если текущее время некорректно.

Пример:

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()

Возвращает текущее время, полученное от системных часов.

Обратите внимание, что точность зависит от точности системных часов; не все системы обеспечивают точность в одну миллисекунду.

Кроме того, 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 Дробная часть секунды, после десятичной точки, без trailing нулей (0 до 999). Таким образом, "s.z" сообщает секунды с максимальной доступной точностью (миллисекунды) без trailing нулей.
zzz Дробная часть секунды с точностью до миллисекунды, включая trailing нули, если применимо (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; например, 1 секунда до полуночи будет "23:59:59".

Если format равен Qt::ISODate, формат строки соответствует расширенному спецификации ISO 8601 для представлений дат, представленным HH:mm:ss. Для включения миллисекунд в дату ISO 8601 используйте формат 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.1/qtime.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API