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