タイム ゾーンを調整する

日時エンティティにより、協定世界時 (UTC) の日付と時刻を取り込むことができます。 ただし、代わりにユーザーの場所に基づいて日付と時刻を表示したい場合があります。

前提条件

Power Virtual Agents がユーザーのタイム ゾーンを決定する方法

Power Virtual Agents は、次の手順に従って、ユーザーのタイム ゾーンを決定します。

  1. Conversation.LocalTimeZone システム変数が Noda Time からの有効なタイム ゾーンに設定されている場合、タイム ゾーンとして使用します。

  2. チャネルがユーザーのメッセージにローカル タイム ゾーンを含む場合は、それを使用します。

  3. それ以外の場合は、UTC をタイム ゾーンとして使用します。

ユーザーのタイム ゾーンを取得する

次のシステム レベル変数を使用して、ユーザーのタイム ゾーンに関する情報を取得します。

  • Conversation.LocalTimeZone (読み取り/書き込み):ユーザーのタイム ゾーンを文字列として保存します。 この変数には、オプションで Noda Time のウェブサイトに記載されている任意のタイムゾーンを設定することができます。

  • Conversation.LocalTimeZoneOffset(読み取り専用): Conversation.LocalTimeZone から UTC オフセットを取得し、時刻の値として保存します。

ユーザーのタイムゾーンを手動で設定する

ボットがユーザーに日付と時刻の入力を求めたとき、Power Virtual Agents はユーザーのタイムゾーンを自動的に決定します。 タイムゾーンを手動で設定することもできます。

  1. ユーザーのタイム ゾーンを設定するトピックを開きます。

  2. 変数値の設定 ノードを追加します。

    • 変数の設定Conversation.LocalTimeZone システム トピックを選択します。

    • 終了値には、Noda Time Web サイトからのゾーン ID 値の 1 つである America/Los_Angeles を入力します。

  3. メッセージ ノードを追加します。

  4. テキスト ボックスの種類に The local time zone is: を入力し、変数の挿入 ({x}) を選択して、システム変数 Conversation.LocalTimeZone を挿入します。

  5. 2 番目のメッセージ ノードを追加します。

  6. テキスト ボックスの種類に The local time zone offset is: を入力し、変数の挿入 ({x}) を選択して、システム変数 Conversation.LocalTimeZoneOffset を挿入します。

  7. チャットボットを保存して、テストします。

    [ボットのテスト] ペインのスクリーンショット。

ローカル タイム ゾーンの日付と時刻を表示する

Power Virtual Agents は UTC の日付と時刻を格納します。 日付と時刻を顧客に表示する前に、タイムゾーン オフセットを追加して、値をユーザーのローカル タイムゾーンに変換します。

この例では、Power Fx の Now() 関数を使って現在の日付と時刻を取得し、タイムゾーン オフセットを加えています。 Power Fx 式で Conversation.LocalTimeZoneOffset システム変数を直接使用することはできません。 代わりに、変数値の設定ノードを使用して、新しい変数を作成し、Conversation.LocalTimeZoneOffset の値を割り当てることができます。

  1. トピックを作成し、トリガー フレーズ what time is itを追加します。

  2. 作成キャンバスで、ノードの追加 (+) を選択します。 変数値を設定するを選択します。

    • 変数を設定するで、offset という名前の変数を作成します。
    • 終了値には、システム変数 Conversation.LocalTimeZoneOffsetを選択します。

    変数値の設定ノードでオフセット変数に値を代入している画面のスクリーンショット。

  3. 2つ目の 変数値の設定 ノードを追加します。

    • 変数を設定するで、nowLocal という名前の変数を作成します。
    • To value には、Power Fx 式 DateAdd(Now(), Topic.offset) を入力します。

    変数値の設定ノードで nowLocal 変数に値を代入している画面のスクリーンショット。

  4. メッセージ ノードを追加します。 メッセージ The current date and time is {Topic.nowLocal} を入力します。

    メッセージ ノードのスクリーンショット。

  5. テスト ボット ウィンドウでボットをテストして、ユーザーのタイムゾーンの日付と時間を取得します。

    テスト ボットのペインで、現在の日時を返信するボットのスクリーンショット。

Power Fx 日付と時刻の参照