Spec-Zone.ru › Qt 5.6

Класс QTime

Класс QTime предоставляет функции для работы со временем. Подробнее...

Заголовок: #include <QTime>
qmake: QT += core
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются реентерабельными.

Открытые функции

QTime()
QTime(int h, int m, int s = 0, int ms = 0)
QTime addMSecs(int ms) const
QTime addSecs(int s) const
int elapsed() const
int hour() const
bool isNull() const
bool isValid() const
int minute() const
int msec() const
int msecsSinceStartOfDay() const
int msecsTo(const QTime &t) const
int restart()
int second() const
int secsTo(const QTime &t) const
bool setHMS(int h, int m, int s, int ms = 0)
void start()
QString toString(const QString &format) const
QString toString(Qt::DateFormat format = Qt::TextDate) const
bool operator!=(const QTime &t) const
bool operator<(const QTime &t) const
bool operator<=(const QTime &t) const
bool operator==(const QTime &t) const
bool operator>(const QTime &t) const
bool operator>=(const QTime &t) const

Статические открытые члены

QTime currentTime()
QTime fromMSecsSinceStartOfDay(int msecs)
QTime fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
QTime fromString(const QString &string, const QString &format)
bool isValid(int h, int m, int s, int ms = 0)

Связанные нечлены

QDataStream & operator<<(QDataStream &out, const QTime &time)
QDataStream & operator>>(QDataStream &in, QTime &time)

Подробное описание

Класс QTime предоставляет функции для работы со временем.

Объект QTime содержит время, т.е. количество часов, минут, секунд и миллисекунд с начала суток. Он может считывать текущее время из системных часов и измерять интервал прошедшего времени. Он предоставляет функции для сравнения времени и для изменения времени путем добавления определенного количества миллисекунд.

QTime использует 24-часовой формат; он не имеет понятия об AM/PM. В отличие от QDateTime, QTime не знает ничего о часовых поясах или летнем времени.

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

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

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

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

QTime может использоваться для измерения интервала прошедшего времени, используя функции start(), restart() и elapsed().

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

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

QTime::QTime()

Конструирует объект времени null. Объект null времени может быть QTime(0, 0, 0, 0) (т.е., полночь), за исключением того, что isNull() возвращает true и isValid() возвращает false.

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

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

QTime QTime::currentTime()

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

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

int QTime::elapsed() const

Возвращает количество миллисекунд, прошедших с момента последнего вызова start() или restart().

Обратите внимание, что счетчик обнуляется через 24 часа после последнего вызова start() или restart().

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

Предупреждение: Если настройки системных часов были изменены с момента последнего вызова start() или restart(), результат неопределён. Это может произойти при включении или выключении летнего времени.

См. также start() и restart().

[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 с использованием заданного формата, или недопустимое время, если это невозможно.

Обратите внимание, что fromString() использует строку, закодированную в формате "C" locale, для преобразования миллисекунд в значение с плавающей точкой. Если локаль по умолчанию не "C", это может привести к двум попыткам преобразования (если преобразование не удается для локаль по умолчанию). Это следует рассматривать как деталь реализации.

См. также toString() и QLocale::toTime().

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

Возвращает QTime, представленное строкой string с использованием заданного формата, или недопустимое время, если строку невозможно разобрать.

Для формата можно использовать следующие выражения:

Выражение Результат
h час без ведущего нуля (0 до 23 или 1 до 12, если используется AM/PM)
hh час с ведущим нулем (00 до 23 или 01 до 12, если используется AM/PM)
m минута без ведущего нуля (0 до 59)
mm минута с ведущим нулем (00 до 59)
s секунда без ведущего нуля (0 до 59)
ss секунда с ведущим нулем (00 до 59)
z миллисекунды без ведущих нулей (0 до 999)
zzz миллисекунды с ведущими нулями (000 до 999)
AP интерпретировать как время AM/PM. AP должно быть либо "AM", либо "PM".
ap Интерпретировать как время AM/PM. ap должно быть либо "am", либо "pm".

Все остальные символы ввода будут обрабатываться как текст. Любая последовательность символов, заключенная в одинарные кавычки, также будет обрабатываться как текст и не будет использоваться как выражение.

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

Если формат не соответствует, возвращается недопустимый QTime. Выражения, которые не ожидают ведущих нулей (h, m, s и 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

См. также 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(const QTime &t) const

Возвращает количество миллисекунд от текущего времени до времени t. Если t раньше текущего времени, возвращаемое количество миллисекунд отрицательно.

Так как QTime измеряет время в течение дня, а в сутках 86400 секунд, результат всегда находится в диапазоне от -86400000 до 86400000 мс.

Возвращает 0, если хотя бы одно из времен недействительно.

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

int QTime::restart()

Устанавливает текущее время и возвращает количество миллисекунд, прошедших с момента последнего вызова start() или restart().

Эта функция гарантированно является атомарной и поэтому очень удобна для многократных измерений. Вызовите start() для запуска первого измерения и restart() для каждого последующего измерения.

Обратите внимание, что счетчик обнуляется через 24 часа после последнего вызова start() или restart().

Предупреждение: Если настройки системных часов были изменены с момента последнего вызова start() или restart(), результат неопределён. Это может произойти при включении или выключении летнего времени.

См. также start(), elapsed() и currentTime().

int QTime::second() const

Возвращает секундную часть (от 0 до 59) времени.

Возвращает -1, если время недействительно.

См. также hour(), minute() и msec().

int QTime::secsTo(const 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().

void QTime::start()

Устанавливает текущее время. Это удобно для тайминга:

QTime t;
t.start();
some_lengthy_task();
qDebug("Time elapsed: %d ms", t.elapsed());

См. также restart(), elapsed() и currentTime().

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)
zzz миллисекунды с ведущими нулями (000 до 999)
AP или A использование формата AM/PM. A/AP будет заменено на QLocale::amText() или QLocale::pmText().
ap или a использование формата am/pm. a/ap будет заменено на строчную версию QLocale::amText() или QLocale::pmText().
t часовой пояс (например, "CEST")

Все остальные символы будут проигнорированы. Любая последовательность символов, заключённых в одинарные кавычки, будет обрабатываться как текст и не будет использоваться как выражение. Две последовательные одинарные кавычки ("''") будут заменены на одну кавычку в выводе. Форматы без разделителей (например, "HHmm") в настоящее время не поддерживаются.

Примеры строк формата (предполагается, что 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

Если время недействительно, будет возвращена пустая строка. Если format пуст, используется стандартный формат «hh:mm:ss».

См. также fromString(), QDate::toString(), QDateTime::toString() и QLocale::toString().

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.

Если format равен Qt::SystemLocaleShortDate или Qt::SystemLocaleLongDate, формат строки зависит от параметров локали системы. Идентично вызову QLocale::system().toString(time, QLocale::ShortFormat) или QLocale::system().toString(time, QLocale::LongFormat).

Если format равен Qt::DefaultLocaleShortDate или Qt::DefaultLocaleLongDate, формат строки зависит от стандартной локали приложения. Это локаль, установленная с помощью QLocale::setDefault(), или системная локаль, если стандартная локаль не была установлена. Идентично вызову

QLocale().toString(time, QLocale::ShortFormat) или QLocale().toString(time, QLocale::LongFormat).

Если format равен Qt::RFC2822Date, строка форматируется в соответствии со спецификацией RFC 2822. Пример такого формата — «23:59:20».

Если время недействительно, возвращается пустая строка.

См. также fromString(), QDate::toString(), QDateTime::toString() и QLocale::toString().

bool QTime::operator!=(const QTime &t) const

Возвращает true если это время отличается от t; в противном случае возвращает false.

bool QTime::operator<(const QTime &t) const

Возвращает true если это время раньше t; в противном случае возвращает false.

bool QTime::operator<=(const QTime &t) const

Возвращает true если это время раньше или равно t; в противном случае возвращает false.

bool QTime::operator==(const QTime &t) const

Возвращает true если это время равно t; в противном случае возвращает false.

bool QTime::operator>(const QTime &t) const

Возвращает true если это время позже t; в противном случае возвращает false.

bool QTime::operator>=(const QTime &t) const

Возвращает true если это время позже или равно t; в противном случае возвращает false.

Связанные нечлены

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

Записывает time в поток out.

См. также Сериализация типов данных Qt.

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/archives/qt-5.6/qtime.html

Spec-Zone.ru

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