タイム ゾーン依存属性について

タイム ゾーン依存属性とは、表示する際に現在のタイム ゾーンが反映される属性です。属性値は、表示されるタイム ゾーンに従って調節されます。

以下にタイム ゾーン依存属性を挙げます。

格納

これらの属性は、グリニッジ標準時 (GMT + 0) でデータベースに格納されます。属性エディター、デザイナー、モデル ビューアーなどで属性がユーザーに表示される際に、まず、クライアントのローカル時間に変換されます。

ユーザーが自分のローカル クライアント タイム ゾーンで値を変更すると、その値は内部で GMT + 0 に変換され、データベースに格納されます。

レポート

レポートがクライアントから起動されると、クライアントのタイム ゾーンがサーバーに転送されます。サーバーは、出力の作成時にタイム ゾーン依存属性を変換します。

スケジュールされたレポートの実行時には、クライアント情報がなく、変換を実行できません。そのため、タイム ゾーン依存属性は、サーバーのタイム ゾーンが GMT + 0 であるという前提で表示されます。

レポート スクリプト API

時間属性の値を変えるには、文字列をパラメーターとして指定できるメソッドを必ず使用してください。例:

oDef.Attribute(Constants.AT_SAP_TIME_GEN, 0).setValue("07:12:45;11/19/2018");

推奨事項

java.util.Date を使用せず、特に、Date オブジェクトをパラメーターとして指定できる setValue() メソッドを使用することを推奨します。Date のさまざまな構成子のほとんどは、クライアントのタイム ゾーンに従って、自動変換を実行します。toString() などを使用する、文字列への日付変換も、クライアントのタイム ゾーンへの変換を実行します。

この例では、2 人のユーザーが同じサーバーにアクセスすると仮定します。

ドイツのユーザーが、2018 年 11 月 19 日午後 4 時 12 分にオブジェクトを作成します。(現地のオペレーション システムに基づいて表示される作成時間は 19.11.2018 16:12 です。)サンフランシスコにいる別のユーザーが [作成時間] 属性を見ると、サンフランシスコの時間はドイツ時間より 9 時間遅れているため、2018 年 11 月 19 日午後 4 時 12 分ではなく、2018 年 11 月 19 日午前 7 時 12 分になります。