共用方式為


容納時區

日期和時間實體擷取以國際標準時間 (UTC) 表示的日期和時間。 但是,您可能希望根據使用者的位置顯示日期和時間。

必要條件

Copilot Studio 判斷使用者時區的方式

Copilot Studio 依序執行下列步驟,以判斷使用者的時區:

  1. 如果 Conversation.LocalTimeZone 系統變數設定為 Noda Time 中的有效時區,則將其當作時區。

  2. 如果管道在使用者的訊息中包含本機時區,請使用該時區。

  3. 否則,請使用 UTC 做為時區。

取得使用者的時區

使用這些系統變數來取得有關使用者時區的資訊:

  • Conversation.LocalTimeZone (讀取-寫入):將使用者的時區儲存為字串。 您可以選擇將此變數設定為 Noda Time 網站上所列的任何時區。

  • Conversation.LocalTimeZoneOffset (唯讀):取得與 Conversation.LocalTimeZone 的 UTC 時差,並將其儲存為時間值。

手動設定使用者的時區

當代理程式提示使用者輸入日期和時間時,Copilot Studio 會自動確定使用者的時區。 您也可以手動設定時區。

  1. 開啟您要在其中設定使用者時區的主題。

  2. 新增設定變數值節點。

    • 設定變數中,選取 Conversation.LocalTimeZone 系統主題。

    • 目標值中,輸入 Noda Time 網站的其中一個時區識別碼值;例如,America/Los_Angeles

  3. 新增訊息節點。

  4. 在文字方塊中輸入「本地時區是:」,然後選擇插入變數 ({x}),插入系統變數 Conversation.LocalTimeZone

  5. 新增第二個訊息節點。

  6. 在文字方塊中輸入「本地時區時差為:」,然後選擇插入變數 ({x}),插入系統變數 Conversation.LocalTimeZoneOffset

  7. 儲存並測試代理程式。

    測試代理程式窗格的螢幕擷取畫面。

顯示當地時區的日期和時間

Copilot Studio 儲存以 UTC 表示的日期和時間。 向客戶顯示日期和時間之前,加上時區時差以將值轉換為使用者的當地時區。

在此範例中,我們使用 Power Fx Now() 函數取得目前日期和時間,然後新增時區時差。 無法在 Power Fx 公式中直接使用 Conversation.LocalTimeZoneOffset 系統變數。 相反,我們使用設定變數值節點來建立一個變數,然後為其指派 Conversation.LocalTimeZoneOffset 的值。

  1. 建立一個主題並加入觸發字詞「現在是什麼時間」。

  2. 在製作畫布中,選取新增節點 (+)。 選取設定變數值

    • 設定變數中,建立名為 offset 的變數。

    • 目標值中,選取系統變數 Conversation.LocalTimeZoneOffset

      將值指派給 offset 變數的設定變數值節點的螢幕擷取畫面。

  3. 新增第二個設定變數值節點。

    • 設定變數中,建立名為 nowLocal 的變數。

    • 到值中,輸入 Power Fx 公式 DateAdd(Now(), Topic.offset)

      將值指派給 nowLocal 變數的設定變數值節點的螢幕擷取畫面。

  4. 新增訊息節點。 輸入訊息「目前日期和時間為 {Topic.nowLocal}」。

  5. 測試代理程式窗格中測試您的代理程式以取得您所在時區的日期和時間。

    代理程式在「測試代理程式」窗格中回覆目前日期和時間的螢幕擷取畫面。