タイム ゾーンを調整する
日時エンティティにより、協定世界時 (UTC) の日付と時刻を取り込むことができます。 ただし、代わりにユーザーの場所に基づいて日付と時刻を表示したい場合があります。
前提条件
Power Virtual Agents がユーザーのタイム ゾーンを決定する方法
Power Virtual Agents は、次の手順に従って、ユーザーのタイム ゾーンを決定します。
Conversation.LocalTimeZone
システム変数が Noda Time からの有効なタイム ゾーンに設定されている場合、タイム ゾーンとして使用します。チャネルがユーザーのメッセージにローカル タイム ゾーンを含む場合は、それを使用します。
それ以外の場合は、UTC をタイム ゾーンとして使用します。
ユーザーのタイム ゾーンを取得する
次のシステム レベル変数を使用して、ユーザーのタイム ゾーンに関する情報を取得します。
Conversation.LocalTimeZone
(読み取り/書き込み):ユーザーのタイム ゾーンを文字列として保存します。 この変数には、オプションで Noda Time のウェブサイトに記載されている任意のタイムゾーンを設定することができます。Conversation.LocalTimeZoneOffset
(読み取り専用):Conversation.LocalTimeZone
から UTC オフセットを取得し、時刻の値として保存します。
ユーザーのタイムゾーンを手動で設定する
ボットがユーザーに日付と時刻の入力を求めたとき、Power Virtual Agents はユーザーのタイムゾーンを自動的に決定します。 タイムゾーンを手動で設定することもできます。
ユーザーのタイム ゾーンを設定するトピックを開きます。
変数値の設定 ノードを追加します。
変数の設定 で
Conversation.LocalTimeZone
システム トピックを選択します。終了値には、Noda Time Web サイトからのゾーン ID 値の 1 つである
America/Los_Angeles
を入力します。
メッセージ ノードを追加します。
テキスト ボックスの種類に
The local time zone is:
を入力し、変数の挿入 ({x}) を選択して、システム変数Conversation.LocalTimeZone
を挿入します。2 番目のメッセージ ノードを追加します。
テキスト ボックスの種類に
The local time zone offset is:
を入力し、変数の挿入 ({x}) を選択して、システム変数Conversation.LocalTimeZoneOffset
を挿入します。チャットボットを保存して、テストします。
ローカル タイム ゾーンの日付と時刻を表示する
Power Virtual Agents は UTC の日付と時刻を格納します。 日付と時刻を顧客に表示する前に、タイムゾーン オフセットを追加して、値をユーザーのローカル タイムゾーンに変換します。
この例では、Power Fx の Now()
関数を使って現在の日付と時刻を取得し、タイムゾーン オフセットを加えています。 Power Fx 式で Conversation.LocalTimeZoneOffset
システム変数を直接使用することはできません。 代わりに、変数値の設定ノードを使用して、新しい変数を作成し、Conversation.LocalTimeZoneOffset
の値を割り当てることができます。
トピックを作成し、トリガー フレーズ
what time is it
を追加します。作成キャンバスで、ノードの追加 (+) を選択します。 変数値を設定するを選択します。
- 変数を設定するで、
offset
という名前の変数を作成します。 - 終了値には、システム変数
Conversation.LocalTimeZoneOffset
を選択します。
- 変数を設定するで、
2つ目の 変数値の設定 ノードを追加します。
- 変数を設定するで、
nowLocal
という名前の変数を作成します。 - To value には、Power Fx 式
DateAdd(Now(), Topic.offset)
を入力します。
- 変数を設定するで、
メッセージ ノードを追加します。 メッセージ
The current date and time is {Topic.nowLocal}
を入力します。テスト ボット ウィンドウでボットをテストして、ユーザーのタイムゾーンの日付と時間を取得します。