QTimeZone Class
QTimeZoneは、時間表現がUTCとどのように関連しているかを識別します。詳細...
ヘッダー | #include <QTimeZone> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
このクラスは等価比較可能です。
注意:このクラスの関数はすべてスレッドセーフです。
パブリック型
struct | OffsetData |
(since 6.5) enum | Initialization { LocalTime, UTC } |
enum | NameType { DefaultName, LongName, ShortName, OffsetName } |
OffsetDataList | |
enum | TimeType { StandardTime, DaylightTime, GenericTime } |
パブリック関数
QTimeZone() | |
(since 6.5) | QTimeZone(QTimeZone::Initialization spec) |
QTimeZone(const QByteArray &ianaId) | |
QTimeZone(int offsetSeconds) | |
QTimeZone(const QByteArray &zoneId, int offsetSeconds, const QString &name, const QString &abbreviation, QLocale::Territory territory = QLocale::AnyTerritory, const QString &comment = QString()) | |
QTimeZone(const QTimeZone &other) | |
QTimeZone(QTimeZone &&other) | |
~QTimeZone() | |
QString | abbreviation(const QDateTime &atDateTime) const |
(since 6.5) QTimeZone | asBackendZone() const |
QString | comment() const |
int | daylightTimeOffset(const QDateTime &atDateTime) const |
QString | displayName(QTimeZone::TimeType timeType, QTimeZone::NameType nameType = QTimeZone::DefaultName, const QLocale &locale = QLocale()) const |
QString | displayName(const QDateTime &atDateTime, QTimeZone::NameType nameType = QTimeZone::DefaultName, const QLocale &locale = QLocale()) const |
(since 6.5) int | fixedSecondsAheadOfUtc() const |
(since 6.8) bool | hasAlternativeName(QByteArrayView alias) const |
bool | hasDaylightTime() const |
bool | hasTransitions() const |
QByteArray | id() const |
bool | isDaylightTime(const QDateTime &atDateTime) const |
(since 6.5) bool | isUtcOrFixedOffset() const |
bool | isValid() const |
QTimeZone::OffsetData | nextTransition(const QDateTime &afterDateTime) const |
QTimeZone::OffsetData | offsetData(const QDateTime &forDateTime) const |
int | offsetFromUtc(const QDateTime &atDateTime) const |
QTimeZone::OffsetData | previousTransition(const QDateTime &beforeDateTime) const |
int | standardTimeOffset(const QDateTime &atDateTime) const |
void | swap(QTimeZone &other) |
(since 6.2) QLocale::Territory | territory() const |
(since 6.5) Qt::TimeSpec | timeSpec() const |
CFTimeZoneRef | toCFTimeZone() const |
NSTimeZone * | toNSTimeZone() const |
QTimeZone::OffsetDataList | transitions(const QDateTime &fromDateTime, const QDateTime &toDateTime) const |
QTimeZone & | operator=(QTimeZone &&other) |
QTimeZone & | operator=(const QTimeZone &other) |
静的パブリック・メンバー
const int | MaxUtcOffsetSecs |
const int | MinUtcOffsetSecs |
QList<QByteArray> | availableTimeZoneIds() |
QList<QByteArray> | availableTimeZoneIds(QLocale::Territory territory) |
QList<QByteArray> | availableTimeZoneIds(int offsetSeconds) |
QTimeZone | fromCFTimeZone(CFTimeZoneRef timeZone) |
(since 6.5) QTimeZone | fromDurationAheadOfUtc(std::chrono::seconds offset) |
QTimeZone | fromNSTimeZone(const NSTimeZone *timeZone) |
(since 6.5) QTimeZone | fromSecondsAheadOfUtc(int offset) |
(since 6.4) QTimeZone | fromStdTimeZonePtr(const int *timeZone) |
QByteArray | ianaIdToWindowsId(const QByteArray &ianaId) |
bool | isTimeZoneIdAvailable(const QByteArray &ianaId) |
(since 6.5) bool | isUtcOrFixedOffset(Qt::TimeSpec spec) |
QTimeZone | systemTimeZone() |
QByteArray | systemTimeZoneId() |
QTimeZone | utc() |
QByteArray | windowsIdToDefaultIanaId(const QByteArray &windowsId) |
QByteArray | windowsIdToDefaultIanaId(const QByteArray &windowsId, QLocale::Territory territory) |
QList<QByteArray> | windowsIdToIanaIds(const QByteArray &windowsId) |
QList<QByteArray> | windowsIdToIanaIds(const QByteArray &windowsId, QLocale::Territory territory) |
関連する非メンバー
bool | operator!=(const QTimeZone &lhs, const QTimeZone &rhs) |
bool | operator==(const QTimeZone &lhs, const QTimeZone &rhs) |
詳細説明
日付と時刻が組み合わされるとき、その結果の意味は、時刻がどのように表現されるかに依存する。時間を表すための様々な国際標準があり、そのうちの1つであるUTCは、グリニッジにおける太陽平均時(別名GMT)の伝統的な標準に対応しています。Qt がサポートする他のすべての時間システムは、最終的に UTC に関連して指定されます。このクラスのインスタンスは、UTCと他の時間表現間の変換のためのステートレス電卓を提供します。
いくつかの時間表現は、UTCに対して固定オフセットで定義されています。また、管轄区域内で使用するために政府によって定義されるものもある。後者はタイムゾーンとして正しく知られていますが、QTimeZone(Qt 6.5以降)は一般的なタイムシステムと表現を統一しています。ほとんどのオペレーティングシステムで一般的にサポートされているタイムゾーンはローカルタイムです。
ローカルタイム、UTC、UTCからの固定オフセット以外のタイムゾーンについては、オペレーティングシステムがその情報にアクセスする方法を提供している場合にのみ、Qtはサポートを提供することができます。Qt がビルドされる際、timezone
機能がそのような情報が利用可能かどうかを制御します。そうでない場合、QTimeZoneのいくつかのコンストラクタとメソッドはAPIから除外されます。これらは、timezone
の機能に依存すると文書化されています。Qt がこの機能を有効にしてビルドされていても、システムの設定が間違っていたり、標準パッケージ(例えば、Linux のtzdata
パッケージ)がインストールされていなかったりすると、利用できないことがあります。タイムゾーン情報が利用可能な場合、この機能はデフォルトで有効になります。
このクラスは主にQDateTime で使用するために設計されています。ほとんどのアプリケーションはこのクラスに直接アクセスする必要はなく、代わりにQDateTime を構築する際にこのクラスのインスタンスを使用する必要があります。
注意: QDateTime との一貫性を保つため、QTimeZone はうるう秒を考慮しません。
備考
QTimeZoneは、QDateTime と同様に、UTCからのオフセットを秒単位で測定する。これは、一般的な時間の計測がミリ秒単位であるのとは対照的です。現実世界のタイムゾーンは、少なくとも1970年以前から、UTCオフセットは5分(300秒)の整数倍であることが一般的です。UTCからのオフセットが正であれば、その日の正午はUTCの正午より前になり、負であれば同じ日の正午はUTCの正午より後になります。
軽量な時間表現
QTimeZoneは、timezone
機能が無効な場合でも、UTC、ローカル時間、UTCからの固定オフセットを表現することができます。これはより軽量な形式であり、timezone
機能が有効な場合にのみ利用可能なメソッドを使用しない限り、通常これを使用した処理の方が効率的です。これらの表現の構築方法については、Initialization とQTimeZone::fromSecondsAheadOfUtc(int)を参照のこと。
このドキュメントでは、システムから提供される情報または標準的な情報によって 記述される時間表現を表すために使用される "time zone "と、これらの 軽量形式を含む、より一般的な時間表現とを区別する。機能(timezone
)が有効になっている場合にのみ使用できるメソッドは、 軽量な時間表現よりもタイムゾーンの方が安価になりがちである。 これらのメソッドでは、問い合わせを転送(forward)する適切な一時的タイムゾー ンオブジェクトを構築することができる。
IANAタイムゾーンID
QTimeZoneは、IANAタイムゾーン・データベース(http://www.iana.org/time-zones)で定義されているIANAタイムゾーンIDを使用する。これは、サポートされるすべてのプラットフォームで標準的なIDを保証するためです。ほとんどのプラットフォームはIANA IDとIANAデータベースをネイティブにサポートしていますが、Windowsの場合はネイティブIDへのマッピングが必要です。詳細は以下を参照。
IANA IDは定期的に変更される可能性があり、また変更されることがあります。そのため、どのホスト・システム上にどのIDが存在しても、それを信頼することはできません。利用可能なIANA IDを調べるには、availableTimeZoneIds()を使用しなければならない。
IANA IDとデータベースは、データベースのオリジナル・コンパイラの名前にちなんで、オルソンIDとデータベースとしても知られています。
UTCオフセット・タイムゾーン
デフォルトのUTCタイムゾーンバックエンドが提供され、timezone
。これは、UTC-16:00からUTC+16:00の範囲にある、一般的なOffset From UTCタイムゾーンのセットを提供します。これらのタイムゾーンは、availableTimeZoneIds()でリストされている「UTC+00:00」のような標準的なISOフォーマットの名前を使うか、オフセット秒数と似た形式の名前を組み合わせて作成することができる。
Windowsのタイムゾーン
Windowsのネイティブタイムゾーンサポートは、標準のIANA TZデータベースと比べると、かなり制限されています。Windowsのタイムゾーンは地理的に広い範囲をカバーしているため、変換の精度が低い。また、過去のデータもあまりサポートされていないため、現在の年についてしか正確でない可能性があります。特に、MSのゾーンデータが1900年以前は夏時間であったと主張している場合(これは歴史的に事実ではないことが知られています)、その主張は無視され、1900年に有効であったとされる標準時が常に有効であったとみなされます。
QTimeZoneは、Unicode CLDRデータから得られた変換テーブルを使用して、IANA IDとWindows IDをマッピングします。WindowsとQtのバージョンによっては、このテーブルが有効な変換を提供できない場合があり、その場合は "UTC "が返されます。
QTimeZoneは、この変換テーブルを使用するためのパブリックAPIを提供しています。使用される Windows ID は、MS Exchange の EWS ID でもあるタイムゾーンの Windows レジストリキーですが、MS Exchange が 2007 より前のバージョンで使用しているタイムゾーン名(TZID)や COD コードとは異なります。
注意: Qt が ICU ライブラリとともにビルドされる場合、ICU は Windows システム API よりも優先的に使用されます。
システムタイムゾーン
メソッドsystemTimeZoneId() は、現在のシステム IANA タイムゾーン ID を返します。Windowsでは、このIDは内部翻訳テーブルとユーザーが選択した国を使用して、WindowsシステムIDから翻訳されます。その結果、Qtが知らないIDがWindowsにインストールされている可能性があり、その場合は "UTC "が返されます。
システムのタイムゾーンIDを使用して新しいQTimeZoneインスタンスを作成すると、タイムゾーンの固定された名前のコピーが作成されるだけで、システムのタイムゾーンが変更されても変更されません。QTimeZone::systemTimeZone() は、このシステムIDで指定されたゾーンを表すインスタンスを返します。このシステムゾーンを使用してQDateTime を構築する場合、Qt::LocalTime をQt::TimeSpec として使用するQDateTime を構築する場合と挙動が異なる可能性がある ことに注意すること。後者では、ローカル時間情報へのアクセスにシステムAPIを 直接使用するため、挙動が異なる可能性があるからである(特に、ユーザーが システムゾーンの設定を調整した場合に適応する可能性がある)。
タイムゾーンオフセット
タイムゾーンにおけるUTCとローカル時刻の差は、UTCからのオフセット(秒)で表される。オフセットの合計は、標準時オフセットと夏時間オフセットの2つで構成される。標準時オフセットは、そのタイムゾーンの標準時を得るためにUTCに加算する秒数です。夏時間オフセットは、そのタイムゾーンの夏時間(DSTと略され、「デイライトタイム」や「サマータイム」と呼ばれることもある)を得るために、標準時オフセットに加える秒数である。通常のサマータイムの場合(冬は標準時、夏はDST)、サマータイムオフセットはプラスになります。しかし、一部のゾーンでは、夏時間のオフセットがマイナスで、冬に標準時を使用し、夏に標準時を使用します。
あるタイムゾーンの標準時と夏時間のオフセットは、各国が夏時間に関する法律や標準時のオフセットを変更したため、時間の経過とともに変わる可能性があることに注意してください。
ライセンス
このクラスは、Unicode Data Files and Software Licenseの条件の下で、CLDRデータファイルから得られたデータを含んでいます。詳細についてはUnicode Common Locale Data Repository (CLDR)を参照してください。
QDateTime およびQCalendarも参照してください 。
メンバ型ドキュメント
[since 6.5]
enum QTimeZone::Initialization
最も単純な軽量時間表現の型。
この列挙は、QTimeZone コンストラクタに渡す軽量時間表現の型を特定するもので、それ以上のデータは必要ない。これらはQt::TimeSpec の同名のメンバに対応します。
定数 | 値 | 説明 |
---|---|---|
QTimeZone::LocalTime | 0 | この時刻表現は、time_t とstruct tm の値を使用して、ローカル時刻と UTC 時刻を対応付けるシステム関数で暗黙的に使用されるものに対応します。 |
QTimeZone::UTC | 1 | この時刻表現である協定世界時(Coordinated Universal Time)は、サポートされるすべての時刻表現で市民時刻が参照される基本表現である。国際電気通信連合によって定義されています。 |
このenumはQt 6.5で導入されました。
enum QTimeZone::NameType
タイムゾーン名のタイプ。
定数 | 値 | 説明 |
---|---|---|
QTimeZone::DefaultName | 0 | LongName、ShortName、OffsetNameのいずれか。 |
QTimeZone::LongName | 1 | タイムゾーン名のロングフォーム。例:"Central European Time" |
QTimeZone::ShortName | 2 | タイムゾーン名の短縮形。通常、そのタイムゾーンを表す短縮形があるロケールでは "CET "などの短縮形、そうでない場合は "GMT+1 "などのコンパクトなGMTオフセット形となる。 |
QTimeZone::OffsetName | 3 | タイムゾーン名の標準的なISOオフセット形式、例えば "UTC+01:00" |
このタイプは、timezone
機能が有効な場合にのみ利用可能です。
QTimeZone::OffsetDataList
QList<OffsetData>の同義語。
このタイプは、機能timezone
が有効になっている場合にのみ利用可能です。
enum QTimeZone::TimeType
名前を要求する場合など、タイムゾーン時間のタイプ。夏時間を適用しないタイムゾーンでは、3つの値すべてが同じ結果を返すかもしれません。
定数 | 値 | 説明 |
---|---|---|
QTimeZone::StandardTime | 0 | タイムゾーンの標準時、つまり夏時間が適用されていない場合の標準時。例えば、表示名をフォーマットする場合、"Pacific Standard Time "のように表示されます。 |
QTimeZone::DaylightTime | 1 | 夏時間が適用されている時間。例えば、表示名をフォーマットする場合、"Pacific daylight-saving time "のように表示されます。 |
QTimeZone::GenericTime | 2 | 標準時間でも夏時間でもない時間。例えば、表示名をフォーマットする場合、"Pacific Time "のように表示されます。 |
この型は、timezone
機能が有効な場合にのみ利用可能である。
メンバー関数のドキュメント
[static, since 6.5]
QTimeZone QTimeZone::fromDurationAheadOfUtc(std::chrono::seconds offset)
[static, since 6.5]
QTimeZone QTimeZone::fromSecondsAheadOfUtc(int offset)
UTC から秒単位で進んだ固定offset の時刻表現を返す。
UTCからのoffset は-16時間から+16時間の範囲でなければならず、そうでない場合は無効なタイムゾーンが返される。返されるQTimeZone は軽量な時間表現であり、タイムゾーン(システム提供または標準データによる)ではない。
オフセットが 0 の場合、返されるインスタンスのtimeSpec() はQt::UTC となる。それ以外の場合、offset が有効であれば、timeSpec()はQt::OffsetFromUTC 。無効なタイムゾーンが返された場合、そのtimeSpec() はQt::TimeZone となります。
この関数は Qt 6.5 で導入されました。
QTimeZone(int)、asBackendZone()、fixedSecondsAheadOfUtc()、MinUtcOffsetSecs 、MaxUtcOffsetSecsも参照してください 。
[noexcept]
QTimeZone::QTimeZone()
NULL/無効なタイムゾーンのインスタンスを作成します。
[noexcept, since 6.5]
QTimeZone::QTimeZone(QTimeZone::Initialization spec)
UTC またはローカル時刻を記述する軽量インスタンスを作成します。
この関数は Qt 6.5 で導入されました。
fromSecondsAheadOfUtc(),asBackendZone(),utc(),systemTimeZone()も参照してください 。
[explicit]
QTimeZone::QTimeZone(const QByteArray &ianaId)
要求されたIANA IDianaId を持つタイムゾーンインスタンスを作成する。
このIDは、利用可能なシステムIDまたは有効なUTC-with-offset IDのいずれかでなければならない。UTCオフセット付きIDが実際にはIANA IDでない場合、生成されるインスタンスのid()
はコンストラクタに渡されたIDと異なるかもしれない。
このコンストラクタは、timezone
機能が有効な場合にのみ使用可能です。
availableTimeZoneIds() およびid()も参照 。
[explicit]
QTimeZone::QTimeZone(int offsetSeconds)
UTC からのオフセットoffsetSeconds を指定してタイムゾーンのインスタンスを作成します。
UTC からのoffsetSeconds は -16 時間から +16 時間の範囲でなければならず、そうでない場合は無効なタイムゾーンが返されます。
このコンストラクタは、timezone
機能が有効な場合にのみ使用できます。返されるインスタンスは、タイムゾーンとして実装されているとはいえ、軽量時間表現QTimeZone::fromSecondsAheadOfUtc(offsetSeconds)
と同等です。
MinUtcOffsetSecs 、MaxUtcOffsetSecs 、id()も参照 。
QTimeZone::QTimeZone(const QByteArray &zoneId, int offsetSeconds, const QString &name, const QString &abbreviation, QLocale::Territory territory = QLocale::AnyTerritory, const QString &comment = QString())
UTCからのオフセットを固定したカスタムタイムゾーンのインスタンスを作成する。
返されるタイムゾーンのIDはzoneId 、UTCからのオフセットはoffsetSeconds である。name はdisplayName()でLongName に使用される名前となり、abbreviation はdisplayName()でShortName とabbreviation()に使用され、オプションのterritory はterritory()で使用される。comment は、ユーザーがタイムゾーンを選択する際に役立つように、GUIに表示されるオプショ ンの注記である。
UTCからのoffsetSeconds は、-16時間から+16時間の範囲でなければならない。availableTimeZoneIds ()に表示されないUTCオフセット名でない限り、zoneId は、isTimeZoneIdAvailable ()が真であるIDであってはならない。
カスタム・タイムゾーンに特定の領域がない場合は、デフォルト値のQLocale::AnyTerritory を設定します。
このコンストラクタは、timezone
の機能が有効な場合にのみ使用できます。
id()、offsetFromUtc()、displayName()、abbreviation()、territory()、comment()、MinUtcOffsetSecs 、およびMaxUtcOffsetSecsも参照 。
[noexcept]
QTimeZone::QTimeZone(const QTimeZone &other)
コピーコンストラクタ:other をここにコピーします。
[noexcept]
QTimeZone::QTimeZone(QTimeZone &&other)
このコンストラクタをother から移動する。
[noexcept]
QTimeZone::~QTimeZone()
タイムゾーンを破壊する。
QString QTimeZone::abbreviation(const QDateTime &atDateTime) const
与えられたatDateTime におけるタイムゾーンの略称を返す。
省略形はサマータイムや歴史的な出来事によって変わることがある。
注意: この省略形はこのタイムゾーンに固有のものであることは保証されておらず、 IDや表示名の代わりに使用することはできない。略称は、基盤となるオペレーティング・システムによってローカライズされることがあります。一貫したローカライズを行うには、displayName(atDateTime, QTimeZone::ShortName, locale)
を使用してください。
この方法は、timezone
機能が有効になっている場合にのみ利用できる。
displayName()も参照 。
[since 6.5]
QTimeZone QTimeZone::asBackendZone() const
このQTimeZone を、timeSpec() がQt::TimeZone であるものに変換する。
すべての場合において、結果のtimeSpec() はQt::TimeZone である。このQTimeZone のtimeSpec() がQt::TimeZone の場合、このQTimeZone 自身が返される。timeSpec()がQt::LocalTime の場合、systemTimeZone()が返される。
timeSpec() がQt::UTC の場合、QTimeZone::utc() が返される。Qt::OffsetFromUTC の場合、QTimeZone (int)にオフセットが渡され、その結果が返される。
軽量時間表現(ローカル時間、UTC 時間、UTC からの固定オフセットによる時間)を使用する場合、timezone
機能が有効な場合にのみサポートされるメソッドを使用すると、対応するタイムゾーンを使用するよりもコストが高くなる可能性があります。このメソッドは、軽量時間表現を対応するタイムゾーン、つまりシステム提供または標準データに基づくインスタンスにマップする。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
この関数は Qt 6.5 で導入されました。
QTimeZone(QTimeZone::Initialization) およびfromSecondsAheadOfUtc()も参照してください 。
[static]
QList<QByteArray> QTimeZone::availableTimeZoneIds()
このシステムで利用可能なすべてのIANAタイムゾーンIDのリストを返す。
このメソッドは、timezone
機能が有効になっている場合にのみ使用可能です。
注意: QTimeZone コンストラクタは、返されるリストにない UTC オフセット ID も受け付けます - 可能なすべての UTC オフセット ID をリストアップするのは非現実的です。
isTimeZoneIdAvailable()も参照 。
[static]
QList<QByteArray> QTimeZone::availableTimeZoneIds(QLocale::Territory territory)
territory 指定されたIANAタイムゾーンIDの一覧を返す。
特別なケースとして、AnyTerritory のterritory は、UTCのような非領域的な関連付けを持つタイムゾーンを選択し、World は、グローバルなデフォルトIANA IDが存在するタイムゾーンを選択する。全領域の全タイムゾーンIDのリストが必要な場合は、標準のavailableTimeZoneIds()メソッドを使用する。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
isTimeZoneIdAvailable() およびterritory()も参照 。
[static]
QList<QByteArray> QTimeZone::availableTimeZoneIds(int offsetSeconds)
指定された標準時間オフセットoffsetSeconds を持つ、利用可能なすべての IANA タイムゾーン ID のリストを返す。
指定されたオフセットがサポートされている場合、QTimeZone(offsetSeconds).id()
は IANA ID でなくてもリストに含まれる。これは、与えられたオフセットを持つIANA UTCオフセットIDが存在しない場合にのみ発生する。
このメソッドは、timezone
機能が有効になっている場合にのみ使用できます。
isTimeZoneIdAvailable() およびQTimeZone(int)も参照のこと 。
QString QTimeZone::comment() const
タイムゾーンに関するコメントを返します。
ユーザーが正しいタイムゾーンを選択できるように、ホストプラットフォームからコメントが提供される場合があります。プラットフォームによっては、ローカライズされない場合もあります。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
int QTimeZone::daylightTimeOffset(const QDateTime &atDateTime) const
指定されたatDateTime における夏時間オフセット、すなわち、現地の夏時間を得るために標準時のオフセットに加算する秒数を返す。
たとえば、タイムゾーン "Europe/Berlin" の夏時間オフセットは +3600 秒です。標準時には daylightTimeOffset() は 0 を返し、夏時間が適用されているときには +3600 を返します。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
offsetFromUtc() およびstandardTimeOffset()も参照 。
QString QTimeZone::displayName(QTimeZone::TimeType timeType, QTimeZone::NameType nameType = QTimeZone::DefaultName, const QLocale &locale = QLocale()) const
地域化されたタイムゾーン表示名を返す。
返される名前は、与えられたlocale のもので、与えられたtimeType が有効なときに適用され、nameType で示される形式のものである。タイムゾーン表示名が時間の経過とともに変更されている場合は、 現在の名前が使用される。適切に地域化された、指定された型の名前がない場合、別の型の名前が使用されるか、空の文字列が返される。
locale を省略した場合は、アプリケーションのデフォルトロケールを使用します。クライアントコードで作成したカスタムタイムゾーンの場合は、 コンストラクタで指定したデータが使用されます。このタイムゾーンが無効な場合は、空の文字列を返します。これは、システムタイムゾーンの決定に失敗した場合に、ローカル時間の表現にも発生する可能性があります。
このメソッドは、timezone
機能が有効な場合にのみ使用できる。
abbreviation()も参照のこと 。
QString QTimeZone::displayName(const QDateTime &atDateTime, QTimeZone::NameType nameType = QTimeZone::DefaultName, const QLocale &locale = QLocale()) const
地域化されたタイムゾーン表示名を返す。
返される名前は、指定されたlocale のものであり、指定されたatDateTime で適用可能であり、nameType で示される形式のものである。表示名は、夏時間や歴史的な出来事によって変わるかもしれない。指定された型の適切なローカライズされた名前がない場合、別の名前の型が使われるか、空の文字列が返されるかもしれない。
locale を省略した場合は、アプリケーションのデフォルトロケールを使用します。クライアントコードで作成したカスタムタイムゾーンの場合は、 コンストラクタで指定したデータが使用されます。このタイムゾーンが無効な場合は、空の文字列を返します。これは、システムタイムゾーンの決定に失敗した場合に、ローカル時間の表現にも発生する可能性があります。
このメソッドは、timezone
機能が有効な場合にのみ使用できる。
abbreviation()も参照のこと 。
[constexpr noexcept, since 6.5]
int QTimeZone::fixedSecondsAheadOfUtc() const
timeSpec() がQt::OffsetFromUTC である軽量時間表現の場合、UTCからの固定オフセットを返す。それ以外の時間表現に対しては、たとえその時間表現がUTCからの一定のオフセットを持っていたとしても、0を返します。
この関数はQt 6.5で導入されました。
[static]
QTimeZone QTimeZone::fromCFTimeZone(CFTimeZoneRef timeZone)
CFTimeZonetimeZone のコピーを含む新しいQTimeZone を構築する。
toCFTimeZone()も参照 。
[static]
QTimeZone QTimeZone::fromNSTimeZone(const NSTimeZone *timeZone)
NSTimeZonetimeZone のコピーを含む新しいQTimeZone を構築する。
toNSTimeZone()も参照 。
[static, since 6.4]
QTimeZone QTimeZone::fromStdTimeZonePtr(const int *timeZone)
timeZone と同じタイムゾーンを表すQTimeZone オブジェクトを返す。timeZone の IANA ID は、利用可能なシステム ID のいずれかでなければならない。そうでない場合、無効なタイムゾーンが返される。
このメソッドは、timezone
機能が有効になっている場合にのみ使用できます。
この関数は Qt 6.4 で導入されました。
[since 6.8]
bool QTimeZone::hasAlternativeName(QByteArrayView alias) const
alias がこのタイムゾーンの別名である場合はtrue
を返す。
IANA(旧Olson)データベースは、その歴史の中でいくつかのゾーンの名前を変更してきました。また、1970年以前は異なっていただけで、現在は同義語として扱われているゾーンもあります。バックエンドの中には、1970年以前のデータを持っていて、後者の場合に区別できるゾーンを生成するものがあるかもしれない。また、id()以外では区別できないゾーンを生成するものもある。このメソッドは、IDが(少なくとも1970年以降に)このタイムゾーンオブジェクトが記述しているのと同じゾーンを参照しているかどうかを判定する。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
この関数は Qt 6.8 で導入されました。
bool QTimeZone::hasDaylightTime() const
タイムゾーンがいつでもサマータイムを実施していた場合、true
を返す。
このメソッドは、機能timezone
が有効な場合にのみ使用できます。
isDaylightTime() およびdaylightTimeOffset()も参照 。
bool QTimeZone::hasTransitions() const
システムバックエンドがトランジションの取得をサポートしている場合はtrue
を返す。
トランジションとはタイムゾーンの変化のことで、サマータイムのオン・オフや当局がタイムゾーンのオフセットを変更したときに発生します。
このメソッドは、timezone
が有効な場合にのみ使用可能です。
nextTransition()、previousTransition()、transitions()も参照の こと。
[static]
QByteArray QTimeZone::ianaIdToWindowsId(const QByteArray &ianaId)
与えられたianaId に相当する Windows ID を返す。
このメソッドは、timezone
機能が有効な場合にのみ使用可能です。
windowsIdToDefaultIanaId() およびwindowsIdToIanaIds()も参照してください 。
QByteArray QTimeZone::id() const
IANA ID:タイムゾーンのIANA IDを返します。
IANA IDはすべてのプラットフォームで使用される。Windowsの場合、これらはWindows IDからタイムゾーンと領域に最もマッチするIANA IDに変換される。
このタイムゾーンインスタンスがIANA IDから構築されていない場合、そのIDはどのように 構築されたかによって決定される。ほとんどの場合、インスタンスの 構築時に渡されたIDが使用される。(カスタムゾーンのコンストラクタは渡されたIDを使用するが、これは IANA IDであってはならない)。2つの例外がある。
- UTCオフセット(秒単位)のみを渡して構築されたインスタンスは、 構築時に渡されるIDを持たない。
- IANA IDのみを受け取るコンストラクタは、実際にはIANA IDではないいくつかのUTCオフセットIDも受け入れる。これらの処理は、最初の例外と同様に、対応するオフセットを秒単位で渡すことと同じである。
2つの例外的な場合において、指定されたオフセットを持つIANA UTCオフセットゾーンが存在する場合、 構築されるインスタンスは、コンストラクタに渡された(IANAでない)UTCオフセット IDと異なっていても、そのIANAゾーンのIDを使用する。そうでない場合、インスタンスはオフセットから合成されたUTC±hh:mm:ss形式の IDを使用する。この場合も、コンストラクタに渡されたUTCオフセットIDとは異なる場合があります。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
bool QTimeZone::isDaylightTime(const QDateTime &atDateTime) const
与えられたatDateTime においてサマータイムが有効であった場合、true
を返す。
このメソッドは、timezone
の機能が有効な場合にのみ使用できます。
hasDaylightTime() およびdaylightTimeOffset()も参照 。
[static]
bool QTimeZone::isTimeZoneIdAvailable(const QByteArray &ianaId)
指定されたタイムゾーンianaId がこのシステムで利用可能な場合、true
を返す。
これには、availableTimeZoneIds()にリストされていない非IANA ID、特にUTCオフセットIDが含まれることがある。
このメソッドは、timezone
機能が有効な場合にのみ使用できる。
availableTimeZoneIds()も参照のこと 。
[constexpr noexcept, since 6.5]
bool QTimeZone::isUtcOrFixedOffset() const
timeSpec() がQt::UTC またはQt::OffsetFromUTC の場合、true
を返す。
これがtrueの場合、ローカル時間やタイムゾーンで起こりうるような、季節的な夏時間の変更など、時間の経過に伴う時間記述の変更はない。このことを知っていれば、呼び出し側で他の様々なチェックをする必要がなくなります。
この関数はQt 6.5で導入されました。
[static constexpr noexcept, since 6.5]
bool QTimeZone::isUtcOrFixedOffset(Qt::TimeSpec spec)
spec がQt::UTC またはQt::OffsetFromUTC の場合、true
を返します。
この関数は Qt 6.5 で導入されました。
bool QTimeZone::isValid() const
このタイムゾーンが有効な場合はtrue
を返す。
QTimeZone::OffsetData QTimeZone::nextTransition(const QDateTime &afterDateTime) const
与えられたafterDateTime の後の最初のタイムゾーン遷移を返す。これは、Transitionの時刻があり、その時刻以降のTransitionを見つけたい場合に最も有用である。
指定されたafterDateTime の後に遷移がない場合、無効なOffsetData が返され、無効なQDateTime がatUtc
として返されます。
与えられたafterDateTime は排他的です。
このメソッドは、timezone
機能が有効な場合にのみ利用可能です。
hasTransitions()、previousTransition()、transitions()も参照 。
QTimeZone::OffsetData QTimeZone::offsetData(const QDateTime &forDateTime) const
指定されたforDateTime での有効なオフセットの詳細を返す。
これは、abbreviation ()と 3 つのオフセット関数を個別に呼び出すのと同じですが、より効率的であり、省略形のローカライズが異なる場合があります。このデータが指定された日時で利用できない場合は、無効なQDateTime をatUtc
として、無効なOffsetData が返されます。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
offsetFromUtc()、standardTimeOffset()、daylightTimeOffset()、abbreviation()も参照 。
int QTimeZone::offsetFromUtc(const QDateTime &atDateTime) const
指定されたatDateTime における有効なオフセットの合計、すなわち、現地時刻を取得するために UTC に加算する秒数を返す。このオフセットには、有効な夏時間オフセットも含まれる。つまり、指定した日付のstandardTimeOffset() とdaylightTimeOffset() の合計である。
たとえば、タイムゾーン "Europe/Berlin "の標準時オフセットは+3600秒、夏時間オフセットは+3600秒です。標準時の offsetFromUtc() は +3600 (UTC+01:00) を返し、夏時間の offsetFromUtc() は +7200 (UTC+02:00) を返します。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
standardTimeOffset() およびdaylightTimeOffset()も参照 。
QTimeZone::OffsetData QTimeZone::previousTransition(const QDateTime &beforeDateTime) const
与えられたbeforeDateTime より前の最初のタイムゾーン遷移を返す。これは、Transition時刻があり、その前のTransitionを見つけたい場合に最も有用である。
与えられたbeforeDateTime の前にTransitionがない場合、無効なOffsetData が返され、そのatUtc
として無効なQDateTime が返されます。
与えられたbeforeDateTime は排他的です。
このメソッドは、timezone
機能が有効な場合にのみ利用可能です。
hasTransitions()、nextTransition()、transitions()も参照 。
int QTimeZone::standardTimeOffset(const QDateTime &atDateTime) const
指定されたatDateTime における標準時オフセット、すなわち、UTC に加算してその地域の標準時を得るための秒数を返します。このオフセットには、夏時間が適用されている場合は含まれない。
例えば、タイムゾーン "Europe/Berlin "の標準時オフセットは+3600秒である。標準時と夏時間の両方において、offsetFromUtc ()は+3600(UTC+01:00)を返す。
このメソッドは、timezone
機能が有効な場合にのみ使用できる。
offsetFromUtc() およびdaylightTimeOffset()も参照 。
[noexcept]
void QTimeZone::swap(QTimeZone &other)
このタイムゾーン・インスタンスをother と交換する。この操作は非常に速く、失敗することはない。
[static]
QTimeZone QTimeZone::systemTimeZone()
ローカルシステム時間を記述したQTimeZone オブジェクトを返す。
このメソッドは、timezone
機能が有効な場合にのみ利用可能です。返されるインスタンスは、タイムゾーンとして実装されてはいるが、通常は軽量時間表現QTimeZone(QTimeZone::LocalTime)
と同等である。
返されるオブジェクトは、その後システム・タイム・ゾーンが変更されても、それを反映して変更されることはない。これは、asBackendZone()が呼び出されたときに有効だったローカル時刻を表す。Qt がコンパイルされたバックエンドが依存しているタイムゾーンのデータがないなど、設定が間違っているシステムでは、このオブジェクトは無効かもしれません。そのような場合、警告が出力されます。
utc()、Initialization 、asBackendZone()、systemTimeZoneId()も参照してください 。
[static]
QByteArray QTimeZone::systemTimeZoneId()
現在のシステムタイムゾーンIANA IDを返す。
systemTimeZone().id() を呼び出すのと同じであるが、計算をバイパスして取得する場合がある。返されたバイト配列からQTimeZone を構築すると、systemTimeZone() と同じ結果が得られる。
バックエンドが正しいシステムゾーンを決定できない場合、結果は空である。この場合、systemTimeZone()。isValid()は偽であり、このメソッドとsystemTimeZone()のどちらかが 呼び出されると警告が出力される。
バックエンドが正しいシステムゾーンを決定できたが、その名前を決定できなかった 場合、空のバイト配列が返される。例えば、Windowsの場合、システムネイティブIDはIANA IDに変換される。 もしシステムIDが内部翻訳コードでわからない場合、結果は空になる。この場合、systemTimeZone().isValid() は真となる。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
注意: Qt 6.7以前では、結果を決定できない場合、"UTC "という誤解を招く結果が返されていました。
systemTimeZone()も参照してください 。
[since 6.2]
QLocale::Territory QTimeZone::territory() const
タイムゾーンの領域を返す。
AnyTerritory 。これは、ゾーンに関連する領域が存在しない場合 (たとえばUTC)、 あるいはゾーンが複数の領域で使用されている場合 (たとえばCET) である。その他の場合、QTimeZone バックエンドは、そのゾーンがどの領域と関連付けられているかを知らない かもしれない。例えば、そのゾーンが使用されている領域のプライマリゾーン ではないからである。
このメソッドは、timezone
機能が有効な場合にのみ利用できます。
この関数は Qt 6.2 で導入されました。
[constexpr noexcept, since 6.5]
Qt::TimeSpec QTimeZone::timeSpec() const
時刻表現のタイプを特定するQt::TimeSpec を返す。
結果がQt::TimeZone の場合、この時間記述はタイムゾーンである(システムから提供されたデータまたは標準的なデータによる)。そうでない場合は、軽量な時間表現です。結果がQt::LocalTime の場合は、ローカル時間を表現します。詳細はQt::TimeSpec を参照してください。
この関数は Qt 6.5 で導入されました。
fixedSecondsAheadOfUtc() およびasBackendZone()も参照してください 。
CFTimeZoneRef QTimeZone::toCFTimeZone() const
QTimeZone から CFTimeZone を作成する。
呼び出し側は CFTimeZone オブジェクトを所有し、それを解放する責任がある。
fromCFTimeZone()も参照 。
NSTimeZone *QTimeZone::toNSTimeZone() const
QTimeZone から NSTimeZone を作成します。
NSTimeZoneオブジェクトは自動解放される。
fromNSTimeZone()も参照 。
QTimeZone::OffsetDataList QTimeZone::transitions(const QDateTime &fromDateTime, const QDateTime &toDateTime) const
指定された日付間のすべてのタイムゾーン遷移のリストを返す。
指定されたfromDateTime とtoDateTime は包含される。各エントリのatUtc
メンバは、他のメンバで指定されたオフセットと省略形が有効になる遷移の瞬間を記述します。
このメソッドは、timezone
機能が有効な場合にのみ利用可能である。
hasTransitions()、nextTransition()、previousTransition()も参照 。
[static]
QTimeZone QTimeZone::utc()
タイムゾーンとして UTC を記述したQTimeZone オブジェクトを返す。
このメソッドは、timezone
機能が有効になっている場合にのみ使用できます。このメソッドは、QTimeZone(int offsetSeconds) や軽量時間表現QTimeZone(QTimeZone::UTC) に 0 を渡すのと同じですが、後者とは異なりタイムゾーンとして実装されています。
systemTimeZone()、Initialization 、asBackendZone()も参照の こと。
[static]
QByteArray QTimeZone::windowsIdToDefaultIanaId(const QByteArray &windowsId)
与えられたwindowsId のデフォルトのIANA IDを返す。
1つのWindows IDが複数の異なる領域の複数のIANA IDをカバーすることがあるため、この関数は領域を無視して最も頻繁に使用されるIANA IDを返す。通常、特定の領域のデフォルトを要求するのが最善である。
このメソッドは、timezone
機能が有効な場合にのみ使用できる。
ianaIdToWindowsId() およびwindowsIdToIanaIds()も参照のこと 。
[static]
QByteArray QTimeZone::windowsIdToDefaultIanaId(const QByteArray &windowsId, QLocale::Territory territory)
指定されたwindowsId およびterritory のデフォルトの IANA ID を返す。
Windows IDは、ある領域内で複数のIANA IDをカバーすることができるため、 その領域内で最も頻繁に使用されるIANA IDが返される。
特別なケースとして、AnyTerritory は、非領域の関連付けがあるIANA IDのデフォルトを返し、World は、特定の関連付けがない領域では、指定されたwindowsId のデフォルトを返す。
戻り値が空の場合、このwindowsId について、指定されたterritory に固有のIANA IDは存在しない。この場合、windowsIdToDefaultIanaId(windowsId)
にフォールバックするのが妥当である。
このメソッドは、timezone
機能が有効になっている場合にのみ利用できる。
ianaIdToWindowsId()、windowsIdToIanaIds()、territory()も参照のこと 。
[static]
QList<QByteArray> QTimeZone::windowsIdToIanaIds(const QByteArray &windowsId)
指定されたwindowsId のすべての IANA ID を返す。
返されるリストはアルファベット順にソートされる。
このメソッドは、timezone
機能が有効な場合にのみ使用できます。
ianaIdToWindowsId() およびwindowsIdToDefaultIanaId()も参照 。
[static]
QList<QByteArray> QTimeZone::windowsIdToIanaIds(const QByteArray &windowsId, QLocale::Territory territory)
与えられたwindowsId とterritory のすべてのIANA IDを返す。
特別なケースとして、AnyTerritory は、領土以外の関連付けを持つIANA IDを選択し、World は、特定の関連付けを持たない領土で、与えられたwindowsId のデフォルトを選択する。
返されるリストは、使用頻度の高い順、すなわち、領域内の大きなゾーンが最初に リストされる。
このメソッドは、timezone
が有効な場合にのみ使用できる。
ianaIdToWindowsId()、windowsIdToDefaultIanaId()、territory()も参照のこと 。
[noexcept]
QTimeZone &QTimeZone::operator=(QTimeZone &&other)
Move-other をこのQTimeZone インスタンスに割り当て、そのデータの所有権をこのインスタンスに移す。
QTimeZone &QTimeZone::operator=(const QTimeZone &other)
代入演算子。other を代入する。
メンバ変数ドキュメント
const int QTimeZone::MaxUtcOffsetSecs
UTCからのタイムゾーンのオフセットは、これより大きくなることはないと予想される。
21世紀初頭のタイムゾーンで最もUTCオフセットが大きいのは+14時間(クリスマス島、キリバス、キリティマティ)、つまりグリニッジから14時間東である。
歴史的には、ロシアがアラスカをアメリカに売却した1867年以前、アラスカはロシアと同じ日付を使っていたため、グリニッジから15時間以上東にずれていた。アラスカは現地の太陽標準時を使用していたため、オフセットはさまざまだったが、いずれもグリニッジの東16時間未満だった。
MinUtcOffsetSecsも参照 。
const int QTimeZone::MinUtcOffsetSecs
UTCからのタイムゾーンオフセットは、これ以下にはならないと予想される。
21世紀初頭のタイムゾーンで最もUTCオフセットが小さいのは、-12時間(アメリカのベーカー島)、つまりグリニッジの西12時間である。
歴史的には、1844年までフィリピン(当時はスペインが支配)はスペインのアメリカ領と同じ日付を使っていたため、グリニッジから西に16時間近いオフセットがあった。フィリピンは現地の太陽標準時を使用していたため、フィリピンのいくつかの領土はグリニッジから16時間以上西で運用されていた可能性があるが、21世紀初頭のタイムゾーンでそのような極端な歴史をたどるものはない。
MaxUtcOffsetSecsも参照の こと。
関連 非会員
[noexcept]
bool operator!=(const QTimeZone &lhs, const QTimeZone &rhs)
lhs のタイムゾーンがrhs のタイムゾーンと等しくない場合はtrue
を返す。
2つの表現が、時間のすべての瞬間の表現において一致していたとしても、内部的に異なる記述がされていれば、2つの表現は異なるものである。特に、軽量時間表現はタイムゾーンと一致することがあるが、両者は等しくない。
[noexcept]
bool operator==(const QTimeZone &lhs, const QTimeZone &rhs)
lhs のタイムゾーンとrhs のタイムゾーンが等しい場合、true
を返す。
2つの表現が、時間のすべての瞬間の表現において一致していたとしても、内部的に異なる記述がされていれば、2つの表現は異なるものである。特に、軽量時間表現はタイムゾーンと一致することがあるが、両者は等しくない。
© 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.