タイムゾーンの夏時間の変更とJavaのバージョン | 夏時間の調整 (daylight saving time)Issue タイムゾーンデータは、インスタンスで使用される Java ランタイムに含まれています。Java ランタイムのバージョンによっては、タイムゾーンデータリリースの変更に基づいて予期しない動作が発生する場合があります。 タイムゾーンの変更は IANA によって管理されており、変更は通常、政府が自国での夏時間の適用を変更することを決定したために発生します。これらの変更が急な通知で行われた場合、最新のJavaリリースでは、IANAタイムゾーンデータベースの最新バージョンが組み込まれない可能性があります。 各Javaランタイムのデフォルトのタイムゾーンtzdataを確認するには、タイムゾーンデータバージョンを参照してください。 例:アメリカ/サンティアゴのタイムゾーン インスタンスで使用される Java のバージョンには、最近のタイムゾーンの変更が含まれていない場合があります。たとえば、システム・タイム・ゾーンが「アメリカ/サンティアゴ」に設定されている場合、Java 1.6 で使用されるタイム・ゾーン tzdata リリースにより、タイム・ゾーンは夏時間 (DST) 時に UTC/GMT-4 ではなく UTC/GMT-3 として表示されます。 このタイムゾーンの不一致は、チリの季節的な時計の変更によるものです。2015年初頭、チリは季節的なDSTから恒久的なDSTに切り替えることを計画していました。その結果、この変更に対応するために、更新されたタイムゾーンルールがJREリリース6u95、7u80、8u45に含まれました。しかし、2016年3月、チリは恒久的なDSTから季節的なDSTに戻りました。その結果、影響を受ける JRE リリースを使用し、システムタイムゾーンとして定義されたアメリカ/サンティアゴを使用するインスタンスは、夏時間中に 1 時間ずれていました。 アメリカ/サンティアゴの修正 Java 1.8 に含まれる JRE リリース tzdata2016c は、この問題を解決し、チリの季節的な DST を考慮しています。上記と同様の問題が発生した場合は、 ServiceNow カスタマーサポート に連絡して更新を要求してください。 例:ブラジルのタイムゾーン ブラジルでは、2019年11月現在、夏時間の変化は見られなくなりました。この変更は、IANA tzdata2019bタイムゾーンデータに含まれており、10月中旬にリリースされたJava 8u231に含まれています。 インスタンスで使用されている Java のバージョンが現在 8u231 でない場合、2019 年 11 月の第 1 日曜日にシステム時刻が 1 時間シフトします。 これを回避するには、回避策の手順に従うことができますが、使用されているブラジルのタイムゾーンに応じて次のように置き換えます。 ブラジル/デノローニャ: Etc/GMT+2ブラジル/東部:Etc/GMT+3ブラジル/西部:Etc/GMT+4ブラジル/アクレ:Etc/GMT+5 ワークアラウンド インスタンスのタイムゾーンが影響を受ける値に設定されている場合は、国/都市形式の代わりにタイムゾーン形式 (GMT) を使用するようにシステムのタイムゾーンを設定できます。 インスタンスのシステムタイムゾーンが影響を受けるタイムゾーン値に設定されておらず、sys_userレコードに空でないtime_zone設定があるインスタンスのユーザーのみが影響を受ける場合は、それらのユーザーの sys_user.time_zone 値のみを変更します。インスタンスのタイムゾーンが変更され、空でない sys_user.time_zone 値を持つユーザーが変更されない場合、それらのユーザーには引き続き時間の不一致が表示されます。 この回避策のメソッドは、インスタンスを正しいタイムゾーンに手動で設定するため、夏時間に合わせて調整されません。問題が、以前はそうではなかったタイムゾーンが夏時間に従う必要があることである場合、夏時間への移行時/夏時間からの移行時に選択したタイムゾーンを変更する必要があります。夏時間が観察されなくなった場合は、将来のある時点でルールが再度変更されない限り、値を一度設定するだけで済みます。 システムのタイムゾーンを変更するには、 システムのプロパティ > システムに移動します。 プロパティ すべてのユーザーのシステムタイムゾーン (ユーザーのレコードで上書きされない限り [glide.sys.default.tz] を見つけます。タイムゾーン形式を使用して、プロパティを目的のタイムゾーンに設定します。例: Etc/GMT+4。 使用可能な値については、を参照してください。 上記の回避策はチリのタイムゾーンの変更に固有の値を使用していますが、このアプローチは、適切なEtc / GMTタイムゾーンを置き換えることで、将来の同様の問題を回避するために使用できます。 ユーザーのタイムゾーンを変更するには、 ユーザー管理 > ユーザーに移動します。 [タイムゾーン] フィールドがない場合は、リストに追加します。「Active」 = true で、「Time zone」は変更が必要なタイムゾーン名に等しい場合にフィルタリングします。リスト編集 を使用すると、フォームを使用せずに複数のユーザーの値を更新できます。または、多数のユーザーを更新する必要がある場合は、準本番インスタンスでテストした後、修正スクリプトを使用できます。 注: Etc/GMT タイムゾーンは、タイムゾーン値の +/- の意味を逆にします。+ 記号は経度 0 度より西のタイムゾーンを示します (例: Etc/GMT+4 は UTC-4 に相当します)。 注意: Etc/GMT タイムゾーンの選択肢が、インスタンスで非アクティブになっている場合があります。システム定義 > 選択リストに移動し、table = sys_user および element = time_zone でフィルタリングします。ワークアラウンドに使用する必要があるEtc/GMTタイムゾーンのいずれかの非アクティブフィールドをfalseに設定します。 Related Linkstz データベースのタイムゾーンの一覧 [Wikipedia]JRE ソフトウェアのタイムゾーンデータバージョン [Oracle]チリがDST2015を廃止 [timeanddate.com]タイムゾーンデータベース [IANA]