QTime Class

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

Header: #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")。タイムゾーンの省略形は一意ではないことに注意。特に、toString()はこれを解析できない。
ttUTCからのタイムゾーンのオフセット。時・分の間にコロンは入れない("+0200 "など)。
tttUTCからのタイムゾーンのオフセットで、時・分の間にコロンを含むもの(例えば "+02:00")。
ttttタイムゾーン名(例えば "Europe/Berlin")。これは、その日付が夏時間か標準時かを示すものではないことに注意。使用される名前は、QTimeZone::displayName()がQTimeZone::LongName 型とともに提供するものである。これは使用するオペレーティング・システムによって異なる。

一重引用符で囲まれた空でない文字列は、書式文字を含んでいても、(引用符を 取り除いた)出力文字列にそのまま含まれる。連続する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 A14時13分9秒

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

注: AMまたはPMの地域化された形式(AP、ap、A、aPまたはAp形式)を取得するには、QLocale::system()を使用する。toString()。

注: ある書式文字が、それを使った上の表の最長の表現よりも何度も繰り返される場合、書式のこの部分は、それらの間に区切り文字のない複数の表現として読み取られる。したがって、時刻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 秒遅い時刻を含むQTime オブジェクトを返します (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()は、1日の中で増加するだけであり、午前0時を過ぎるたびに24時間ずつ減少する。また、夏時間の移行が介在する場合、currentTime()の変化は経過時間と一致しないことがある。

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 を返す。ヌル時刻は無効な時刻でもあります。

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 は一日内の時間を計測し、一日は 86400 秒あるので、結果は常に -86400000 から 86400000 ms の間になる。

いずれかの時間が無効な場合は 0 を返す。

secsTo(),addMSecs(),QDateTime::msecsTo()も参照のこと

int QTime::second() const

時刻の第2部(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 となる。例えば、真夜中の 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)

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

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 データ型のシリアライズ」も参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。