QTimeZone Class

QTimeZoneは、時間表現がUTCとどのように関連しているかを識別します。詳細...

Header: #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 機能が有効な場合にのみ利用可能なメソッドを使用しない限り、通常これを使用した処理の方が効率的です。これらの表現の構築方法についてはInitializationQTimeZone::fromSecondsAheadOfUtc(int)を参照のこと。

このドキュメントでは、システムから提供される情報や標準的な情報によって記述される時刻表現を記述するために使用される "time zone "と、これらの軽量形式を含むより一般的な時刻表現とを区別する。機能(timezone )が有効な場合にのみ利用可能なメソッドは、 軽量な時間表現よりもタイムゾーンの方が安価になりがちである。 このようなメソッドでは、適切な一時的タイムゾーンオブジェクトを構築して問い合わせを 転送することができる。

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の範囲で、一般的な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::LocalTimeQt::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::LocalTime0この時刻表現は、time_tstruct tm の値を使用して、ローカル時刻と UTC 時刻を対応付けるシステム関数で暗黙的に使用されるものに対応します。
QTimeZone::UTC1この時刻表現である協定世界時(Coordinated Universal Time)は、サポートされるすべての時刻表現で市民時刻が参照される基本表現である。国際電気通信連合によって定義されています。

この列挙型はQt 6.5で導入されました。

enum QTimeZone::NameType

タイムゾーン名の型。

定数説明
QTimeZone::DefaultName0LongName、ShortName、OffsetNameのいずれか。
QTimeZone::LongName1タイムゾーン名のロングフォーム。例:"Central European Time"
QTimeZone::ShortName2タイムゾーン名の短縮形。通常、そのタイムゾーンを表す短縮形があるロケールでは "CET "などの短縮形となり、そうでない場合は "GMT+1 "などのコンパクトなGMTオフセット形となる。
QTimeZone::OffsetName3タイムゾーン名の標準的なISOオフセット形式、例えば "UTC+01:00"

このタイプは、timezone 機能が有効な場合にのみ利用可能である。

QTimeZone::OffsetDataList

QList<OffsetData>の同義語。

この型は、timezone 機能が有効な場合にのみ利用可能である。

enum QTimeZone::TimeType

名前を要求するときなどのタイムゾーン時間のタイプ。夏時間を適用しないタイムゾーンでは、3つの値すべてが同じ結果を返すことがあります。

定数説明
QTimeZone::StandardTime0タイムゾーンの標準時、つまり夏時間が適用されていない場合の標準時。例えば、表示名をフォーマットする場合、"Pacific Standard Time "のように表示されます。
QTimeZone::DaylightTime1夏時間が適用されている時間。例えば、表示名をフォーマットする場合、"Pacific daylight-saving time "のように表示されます。
QTimeZone::GenericTime2標準時間でも夏時間でもない時間。例えば、表示名をフォーマットする場合、"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()、MinUtcOffsetSecsMaxUtcOffsetSecsも参照してください

[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::fromSecondsAfterUtc(offsetSeconds) と同等です。

MinUtcOffsetSecsMaxUtcOffsetSecsid()も参照

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 である。namedisplayName() でLongName に使用される名前となり、abbreviationdisplayName() でShortName に使用され、abbreviation() で に使用される名前となり、オプションのterritoryterritory() で使用される名前となる。comment は、ユーザーがタイムゾーンを選択する際に役立つように、GUIに表示されるオプショ ンの注記である。

zoneId は、availableTimeZoneIds()が返す利用可能なシステムIDの1つであってはならない。UTCからのoffsetSeconds は、-16時間から+16時間の範囲でなければならない。

カスタム・タイムゾーンに特定の領域がない場合は、デフォルト値のQLocale::AnyTerritory を設定します。

このコンストラクタは、timezone 機能が有効な場合にのみ使用できます。

id(),offsetFromUtc(),displayName(),abbreviation(),territory(),comment(),MinUtcOffsetSecs, およびMaxUtcOffsetSecsも参照

[noexcept] QTimeZone::QTimeZone(const QTimeZone &other)

コンストラクタのコピー:other を this にコピーする。

[noexcept] QTimeZone::QTimeZone(QTimeZone &&other)

other から this のコンストラクタを移動する。

[noexcept] QTimeZone::~QTimeZone()

タイムゾーンを破棄する。

QString QTimeZone::abbreviation(const QDateTime &atDateTime) const

与えられたatDateTime におけるタイムゾーンの略称を返す。省略形は、夏時間や歴史的な出来事によって変更される可能性があります。

この省略形はこのタイムゾーンに固有であることは保証されておらず、ID や表示名の代わりに使用してはならないことに注意すること。

この方法は、timezone 機能が有効になっている場合にのみ利用できる。

displayName()も参照

[since 6.5] QTimeZone QTimeZone::asBackendZone() const

このQTimeZonetimeSpec() がQt::TimeZone であるものに変換する。

すべての場合において、結果のtimeSpec() はQt::TimeZone です。このQTimeZonetimeSpec() が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 も受け付ける。

isTimeZoneIdAvailable()も参照のこと

[static] QList<QByteArray> QTimeZone::availableTimeZoneIds(QLocale::Territory territory)

与えられたterritory に対して利用可能なすべてのIANAタイムゾーンIDのリストを返す。

特別なケースとして、AnyTerritoryterritory は、UTCのような領土の関連付けが知られていないタイムゾーンを選択する。全領域の全タイムゾーン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

指定されたtimeType およびnameType の、指定されたlocale における地域化されたタイムゾーン表示名を返す。要求されたnameType およびlocale は、すべてのプラットフォームでサポートされているとは限らない。

locale が指定されない場合は、アプリケーションのデフォルトロケールが使用される。

タイムゾーンの表示名が時間の経過とともに変更されている場合は、 最新の名前が使用されます。

このメソッドは、timezone が有効な場合にのみ使用可能です。

abbreviation()も参照

QString QTimeZone::displayName(const QDateTime &atDateTime, QTimeZone::NameType nameType = QTimeZone::DefaultName, const QLocale &locale = QLocale()) const

指定されたlocale の指定されたnameType の、指定されたatDateTime における地域化されたタイムゾーン表示名を返す。要求されたnameTypelocale は、すべてのプラットフォームでサポートされているとは限らない。

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 を返す。

これが真である場合、ローカルタイムやタイムゾーンで起こりうるような、季節的な夏時間の変更など、時間の経過に伴う時間記述の変更はない。このことを知っていれば、呼び出し側で他の様々なチェックをする必要がなくなります。

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

[static constexpr noexcept, since 6.5] bool QTimeZone::isUtcOrFixedOffset(Qt::TimeSpec spec)

specQt::UTC またはQt::OffsetFromUTC の場合、true を返します。

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

bool QTimeZone::isValid() const

このタイムゾーンが有効な場合、true を返します。

QTimeZone::OffsetData QTimeZone::nextTransition(const QDateTime &afterDateTime) const

与えられたafterDateTime の後の最初のタイムゾーン遷移を返します。これは、Transitionの時刻があり、それ以降のTransitionを探したい場合に便利です。

与えられたafterDateTime の後にTransitionがない場合、無効なOffsetData が返され、無効なQDateTime がそのatUtc として返される。

与えられたafterDateTime は排他的です。

このメソッドは、timezone 機能が有効な場合にのみ利用可能です。

hasTransitions()、previousTransition()、およびtransitions()も参照

QTimeZone::OffsetData QTimeZone::offsetData(const QDateTime &forDateTime) const

指定されたforDateTime での有効なオフセットの詳細を返します。

これは、abbreviation() および 3 つのオフセット関数を個別に呼び出すのと同じですが、より効率的です。このデータが指定された日時に利用できない場合は、無効なQDateTimeatUtc として、無効な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 が返され、無効なQDateTime がそのatUtc として返される。

与えられた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()、InitializationasBackendZone()、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

与えられた日付間のすべてのタイムゾーン遷移のリストを返す。

指定されたfromDateTimetoDateTime は包含される。各エントリのatUtc メンバは、他のメンバで指定されたオフセットと省略形が有効になる遷移の瞬間を記述する。

このメソッドは、timezone 機能が有効な場合にのみ利用可能である。

hasTransitions()、nextTransition() およびpreviousTransition()も参照

[static] QTimeZone QTimeZone::utc()

タイムゾーンとしての UTC を記述するQTimeZone オブジェクトを返します。

このメソッドは、timezone 機能が有効な場合にのみ使用できる。このメソッドは、QTimeZone(int offsetSeconds) や軽量時間表現QTimeZone(QTimeZone::UTC) に 0 を渡すのと同じですが、後者とは異なりタイムゾーンとして実装されています。

systemTimeZone()、InitializationasBackendZone()も参照のこと

[static] QByteArray QTimeZone::windowsIdToDefaultIanaId(const QByteArray &windowsId)

指定されたwindowsId のデフォルトIANA IDを返す。

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のデフォルトが返される。

このメソッドは、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 を選択する。

返されるリストは、使用頻度の高い順、すなわち、領域内の大きなゾーンが最初にリストされる。

このメソッドは、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つの表現が、時間のすべての瞬間の表現において一致していたとしても、内部的に異なる記述をしている場合は異なる。特に、軽量な時間表現はタイムゾーンと一致するかもしれませんが、両者は等しくはなりません。

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