QTime Class

QTimeクラスは時計関数を提供します。詳細...

ヘッダー #include <QTime>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
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 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(QStringView format) const
QString toString(const QString &format) const
QString toString(Qt::DateFormat format = Qt::TextDate) 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)
(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)
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)

詳細説明

QTimeオブジェクトは時計の時刻を保持しており、午前0時からの時、分、秒、ミリ秒の数値で表すことができます。QTimeオブジェクトは、時刻を比較する関数や、ミリ秒を加算して時刻を操作する関数を提供します。intQTimeオブジェクトは、constへの参照ではなく、値で渡す必要があります。

QTimeは24時間時計形式を使用し、AM/PMの概念はありません。QDateTime とは異なり、QTimeはタイムゾーンや夏時間(DST)については何も知らない。

QTimeオブジェクトは通常、時、分、秒、ミリ秒の数を明示的に指定するか、静的関数currentTime()を使用して作成します。

hour ()、minute ()、second ()、msec ()関数を使用すると、時刻の時、分、秒、ミリ秒にアクセスできます。同じ情報は、toString() 関数でテキスト形式で提供される。

addSecs() およびaddMSecs() 関数は、指定された時刻から指定された秒数またはミリ秒後の時刻を提供する。同様に、2 つの時刻の間の秒数またはミリ秒数は、secsTo() またはmsecsTo() を使用して求めることができます。

QTimeは、2つの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先頭のゼロを除いた時間(AM/PM表示の場合は0~23または1~12)
hhゼロを先頭に持つ時(AM/PM表示の場合は00~23または01~12)
Hゼロを先頭に持たない時(AM/PM表示の場合も0~23)
HHゼロを先頭に持つ時(AM/PM表示の場合も00から23まで)
m先頭ゼロなしの分(0~59)
mmゼロを先頭に持つ分(00~59)
sゼロを先頭に付けない秒(0~59)
ssゼロを先頭に付けた秒(00~59)
z または zz小数点以下の秒の小数部で、末尾にゼロは付けない。従って、"s.z" は、ゼロを付けずに、利用可能な(ミリ秒)精度で秒を報告する(0から999)。例えば、"s.z" は、1分の1秒を"0.25"
zzzミリ秒の精度で、該当する場合は末尾のゼロを含む、秒の小数部(000から999)。例えば、"ss.zzz" は、1分の1秒を表す"00.250" を生成する。
APまたはAAM/PM表示を使う。A/AP は'AM'または'PM'に置き換えられる。ローカライズされた形式(QLocale::toString()にのみ関係する)では、 ロケールに適したテキストは大文字に変換される。
ap または aam/pm表示を使う。a/ap は 'am' または 'pm' に置き換えられる。ローカライズされた形式 (QLocale::toString() にのみ関連) では、ロケールに適したテキストは小文字に変換される。
aP または ApAM/PM表示を使用する(6.3以降)。aP/Ap は'AM'または'PM'に置き換えられる。ローカライズされた形式 (QLocale::toString() にのみ関係する) では、ロケールに適したテキスト (QLocale::amText() またはQLocale::pmText() で返される) が、大文字小文字を変えずに使用される。
tタイムゾーンの省略形(例えば "CEST")。タイムゾーンの省略形は一意ではないことに注意。特に、fromString()はこれを解析できない。
ttUTCからのタイムゾーンのオフセット。時・分の間にコロンは入れない("+0200 "など)。
tttUTCからのタイムゾーンのオフセットで、時・分の間にコロンを含むもの(例えば "+02:00")。
ttttタイムゾーン名(例えば "Europe/Berlin")。これは、その日付が夏時間か標準時かを示すものではないことに注意してください。使用される名前は、QTimeZone::displayName()がQTimeZone::LongName 型とともに提供するものである。これは使用するオペレーティング・システムによって異なる。

注: AMやPMの地域化された形式(APapAaaPAp 形式)、またはタイムゾーン表現(t 形式)を取得するには、QLocale::system ()またはtoString ()を使用する。

タイムゾーンを決定できない場合、またはタイムゾーンの適切な表現がない場合、t 形式でタイムゾーンを表現することは省略できる。空文字列を返す場合の詳細については、QTimeZone::displayName()を参照のこと。

一重引用符で囲まれた空でない文字列は、それが書式文字を含んでいたとしても、 出力文字列にそのまま含まれる(引用符は取り除かれる)。連続する2つの一重引用符("'')は、出力では一重引用符に置き換えられる。書式文字列内のその他の文字は、出力文字列にそのまま含まれます。

セパレータのない書式(例えば "ddMM")はサポートされていますが、結果の文字列が必ずしも確実に読めるとは限らないので、注意して使用する必要があります(例えば、"dM "が "212 "を生成する場合、それは12月2日または2月21日のどちらかを意味する可能性があります)。

フォーマット文字列の例(QTime が 14:13:09.042 の場合)

書式結果
hh:mm:ss.zzz14:13:09.042
h:m:s ap午後2時13分9秒
H:M:S AP14時13分9秒

注: ある書式文字が、それを使った上の表で最も長い表現よりも何度も繰り返される場合、書式のこの部分は、それらの間に区切り文字がない複数の表現として読み取られる。したがって、時刻08:00の'HHHHH' は、出力に"08088"

fromString()、QDate::toString()、QDateTime::toString()、QLocale::toString()も参照のこと

[constexpr] QTime::QTime()

null time オブジェクトを構築する。ヌル時刻の場合、isNull() はtrue を返し、isValid() はfalse を返します。ゼロ時刻が必要な場合は、QTime(0, 0) を使用します。一日の開始時刻については、QDate::startOfDay() を参照。

isNull() およびisValid()も参照

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

h 、分m 、秒s 、ミリ秒ms で時刻を構築する。

h は 0 から 23 の範囲、 と は 0 から 59 の範囲、 は 0 から 999 の範囲でなければならない。m s ms

isValid()も参照のこと

QTime QTime::addMSecs(int ms) const

このオブジェクトの時刻よりms ミリ秒後の時刻を含むQTime オブジェクトを返します(ms が負の場合はそれより前の時刻)。

時刻が真夜中を過ぎると折り返されることに注意。例についてはaddSecs() を参照。

この時刻が無効な場合は null を返します。

addSecs()、msecsTo()、QDateTime::addMSecs()も参照

QTime QTime::addSecs(int s) const

このオブジェクトの時刻よりs 秒遅い時刻(s が負の場合は早い時刻)を含むQTime オブジェクトを返します。

時刻が真夜中を過ぎると折り返されることに注意。

この時刻が無効な場合は 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()は1日の中でしか増加しない。真夜中が経過するたびに24時間分ずつ減少する。

QDateTime::currentDateTime() およびQDateTime::currentDateTimeUtc()も参照の こと。

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

時刻を、その日の開始からのmsecs の数、つまり 00:00:00 以降に設定した新しいQTime インスタンスを返す。

msecs が有効範囲外の場合は、無効なQTime が返されます。

msecsSinceStartOfDay()も参照

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

指定されたformat を用いてstring で表された時刻をQTime として返すか、それが不可能な場合は無効な時刻を返す。

toString() およびQLocale::toTime()も参照

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

指定されたformat を使用して、string で表されるQTime を返すか、文字列が解析できない場合は無効な時刻を返す。

これらの式は書式に使用できます:

出力
h先頭のゼロを除いた時間(AM/PM表示の場合は0~23または1~12)
hhゼロを先頭に持つ時(AM/PM表示の場合は00~23または01~12)
Hゼロを先頭に持たない時(AM/PM表示の場合も0~23)
HHゼロを先頭に持つ時(AM/PM表示の場合も00から23まで)
m先頭ゼロなしの分(0~59)
mmゼロを先頭に持つ分(00~59)
sゼロを先頭に付けない秒(0~59)
ssゼロを先頭に付けた秒(00~59)
z または zz秒の小数部。小数点以下のゼロは必要ない(0~999)。したがって、"s.z" は、ミリ秒の精度を持つ、小数点以下3桁までの秒にマッチする。例えば、"s.z" は、"00.250" または"0.25" のいずれかを、その分の1/4秒の時間を表すものとして認識します。
zzzミリ秒の精度で、該当する場合は末尾のゼロを含む、3桁の秒の小数部(000から999)。例えば、"ss.zzz" は、"0.25" は拒否するが、"00.250" は、その分の1/4秒の時間を表すものとして認識する。
AP、A、ap、a、aPまたはAp12:00より前の時刻を表す'AM'か、それ以降の時刻を表す'PM'のどちらかで、大文字と小文字を区別しない。

それ以外の入力文字はテキストとして扱われる。一重引用符で囲まれた空でない文字列も、(引用符を取り除いた)テキストとして扱われ、式としては解釈されない。

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

書式を満たさない場合、無効なQTime 。先頭のゼロを期待しない式(h、m、s、z)は貪欲である。これは、2桁(zの場合は3桁)を使用することを意味し、たとえそれが許容される値の範囲外となり、他のセクションのための桁数が少なすぎるとしても使用されます。例えば、以下の文字列は00:07:10を意味する可能性があるが、mは2桁を取得し、結果として無効な時刻となる:

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、Ap、aP、Aまたはa形式)を認識する場合は、QLocale::system().toTime() を使用します。

注意: ある書式文字が、それを使用した上の表の最長の表現よりも何度も繰り返される場合、書式のこの部分は、それらの間に区切り文字がない複数の表現として読み取られる。したがって、'HHHHH' は、"08088" または"080808" にマッチし、時間を8に設定する。もし時間文字列に "070809" が含まれていれば、"マッチ "するが、矛盾した結果となり、無効な時間になる。

toString()、QDateTime::fromString()、QDate::fromString()、QLocale::toTime()、QLocale::toDateTime()も参照のこと

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

これはオーバーロードされた関数です。

この関数は Qt 6.0 で導入されました。

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

これはオーバーロードされた関数です。

この関数は Qt 6.0 で導入されました。

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

これはオーバーロードされた関数です。

この関数は Qt 6.0 で導入されました。

int QTime::hour() const

時刻の時部分(0~23)を返す。

時刻が無効な場合は -1 を返す。

minute()、second() およびmsec()も参照

[constexpr] bool QTime::isNull() const

時刻がNULLの場合(つまり、QTime オブジェクトがデフォルトのコンストラクタで構築された場合)にはtrue を返し、そうでない場合は false を返します。そうでない場合は 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 の範囲、ms が 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()も参照

[constexpr] int QTime::msecsSinceStartOfDay() const

日の始まり、つまり 00:00:00 からのミリ秒数を返します。

fromMSecsSinceStartOfDay()も参照

int QTime::msecsTo(QTime t) const

この時刻からt までのミリ秒数を返します。t がこの時刻より早い場合、返されるミリ秒数は負になります。

QTime は1日内の時間を計測し、1日は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 は 1 日内の時間を計測し、1 日には 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 の範囲、 と は 0 から 59 の範囲、 は 0 から 999 の範囲でなければならない。設定された時刻が有効な場合は を返し、そうでない場合は を返す。m s ms true false

isValid()も参照のこと

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

これはオーバーロードされた関数である。

時刻を文字列として返す。format パラメータは文字列のフォーマットを決定します。

formatQt::TextDate の場合、文字列の書式は HH:mm:ss となります。例えば、午前0時の1秒前は "23:59:59" となります。

formatQt::ISODate の場合、文字列の書式はISO 8601の日付表現の拡張仕様に対応し、HH:mm:ssで表される。ISO 8601の日付にミリ秒を含めるには、HH:mm:ss.zzzに対応するformat Qt::ISODateWithMs を使用する。

formatQt::RFC2822Date の場合、文字列はRFC 2822互換の書式になる。この書式の例は "23:59:20 "である。

時刻が無効な場合、空の文字列が返される。

fromString()、QDate::toString()、QDateTime::toString()、QLocale::toString()も参照のこと

関連する非会員

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

lhsrhs と異なる場合はtrue を返し、そうでない場合はfalse を返す。

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

lhsrhs より早ければtrue を返し、そうでなければfalse を返す。

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

out time をストリームに書き込みます。

Qt データ型のシリアライズも参照してください

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

lhsrhs より早いか等しい場合はtrue を返し、そうでない場合はfalse を返す。

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

lhsrhs と等しい場合はtrue を返し、そうでない場合はfalse を返す。

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

lhsrhs より後の場合はtrue を返し、そうでない場合はfalse を返す。

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

lhsrhs より後か等しい場合はtrue を返し、そうでない場合はfalse を返す。

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

ストリームin から与えられたtime に時刻を読み込みます。

Qt データ型のシリアライズも参照してください

© 2025 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.