モジュール java.base
パッケージ java.time.zone

クラスZoneRulesProvider

java.lang.Object
java.time.zone.ZoneRulesProvider

public abstract class ZoneRulesProvider extends Object
システムへのタイムゾーン・ルールのプロバイダ。

このクラスはタイムゾーン・ルールの構成を管理します。 staticメソッドは、プロバイダの管理に使用できるpublic APIを提供します。 抽象メソッドは、ルールが提供されることを許可するSPIを提供します。

ZoneRulesProviderは、拡張クラス(通常の拡張ディレクトリに配置されるjarファイル)として、Javaプラットフォームのインスタンスにインストールできます。 インストールされたプロバイダは、ServiceLoaderクラスで定義されているサービス・プロバイダのロード機能を使用してロードされます。 ZoneRulesProviderは、リソース・ディレクトリMETA-INF/services内のjava.time.zone.ZoneRulesProviderというプロバイダ構成ファイルを使用して自身を識別します。 このファイルは、完全修飾された具象ゾーン・ルール・プロバイダ・クラス名を指定する行を含んでいるはずです。 プロバイダは、クラスパスにそれらを追加するか、registerProvider(java.time.zone.ZoneRulesProvider)メソッド経由で自身を登録することによって、使用可能にすることもできます。

Java仮想マシンは、IANAタイムゾーン・データベース(TZDB)で定義されるタイムゾーンにゾーン・ルールを提供するデフォルト・プロバイダを持っています。 システム・プロパティjava.time.zone.DefaultZoneRulesProviderが定義されている場合は、システム・クラス・ローダーを使用して、デフォルト・プロバイダとしてロードされる具体的なZoneRulesProviderクラスの完全修飾名になります。 このシステム・プロパティが定義されていない場合、システム・デフォルト・プロバイダがロードされ、デフォルト・プロバイダとして機能します。

ルールは、ZoneIdで使用されるゾーンIDによって主に参照されます。 ゾーン地域IDのみが使用できます。ここではゾーン・オフセットIDは使用されません。

タイムゾーン・ルールは政治的であるため、データはいつでも変わる可能性があります。 各プロバイダはゾーンIDごとに最新ルールを提供しますが、ルールがどのように変更されたかの履歴を提供することもできます。

実装要件:
このインタフェースは複数スレッドで呼び出せるサービス・プロバイダです。 実装は不変かつスレッドセーフである必要があります。

プロバイダは、ルールがアプリケーションから見られるようになったら、ルールが継続的に使用可能であることを保証する必要があります。

プロバイダは意味のあるtoStringメソッドを実装することが奨励されます。

多くのシステムでは、JVMを停止せずにタイムゾーン・ルールを動的に更新することが求められます。 詳細に調べると、これは複合的な問題です。 プロバイダは動的更新を扱うことを選択できますが、デフォルト・プロバイダは扱いません。

導入されたバージョン:
1.8