转换时区

本文提供了在 Power Automate 触发器或操作中将时区转换为目标时区的步骤。

当在 Power Automate 流中通过触发器和操作传递日期时间时,您可能会发现时区与您预期的不同,或者您可能希望将时区(通常是协调世界时 (UTC))转换为您的本地时间。 您可以使用转换时区操作或 convertTimeZone 表达式来完成此操作。

日期以不同的格式或时区通过服务传递,因此每个连接器可能使用不同的日期时间格式或时区。 一些服务严格使用 UTC 时间以避免混淆。

使用操作转换时区

Power Automate 有一个名为转换时区的内置操作。

  1. 登录到 Power Automate

  2. 找到您的流并选择编辑以添加操作。

  3. 搜索框中,键入转换时区并选择内置的转换时区操作。

    在流中搜索转换时区操作的屏幕截图。

  4. 转换时区操作添加必需和可选输入。

    • 基本时间:您要转换的日期时间。
    • 源时区:日期时间当前所在的时区。
    • 目的地时区:您要将日期转换到的时区。
    • 格式字符串(可选):指定转换时间的所需格式的字符串。

    有关查找当前时区的方法,请参阅本文的常见格式场景部分。

使用表达式转换时区

Power Automate 有一个表达式函数 convertTimeZone,用于将时间戳从源时区转换为目标时区。

屏幕截图显示 Power Automate 有一个用于转换时区的表达式函数。

以下是控制台中的函数示例:

convertTimeZone(timestamp: string, sourceTimeZone: string, destinationTimeZone: string, format?: string)

该函数采用以下参数:

  • timestamp:您要转换的日期时间。
  • sourceTimeZone:日期时间当前所在的时区。
  • destinationTimeZone:您要将日期转换到的时区。
  • format(可选):您要将日期转换为的时区格式。

示例:转换时区

本示例将时区转换为指定的时区和格式。

convertTimeZone('2018-01-01T80:00:00.0000000Z', 'UTC', 'Pacific Standard Time', 'D')

返回结果:Monday, January 1, 2018

示例:使用动态内容

这是在表达式中使用动态内容的一个示例。 这里,triggerBody()?['Date'] 时间戳是您想要格式化的动态内容。 源时区为 UTC。 目标时区为 Eastern Standard Time。 该格式是自定义格式字符串 HH:mm

convertTimeZone(triggerBody()?['Date'],'UTC','Eastern Standard Time','HH:mm')

若要了解有关此表达式函数的更多信息,请访问 convertTimeZone

要了解有关格式字符串参数的更多信息,请访问标准日期和时间格式字符串自定义日期和时间格式字符串

常见格式场景

本节涵盖各种场景以及如何应用适当的格式。

破译日期时间

  • 日期时间可能有不同的格式。 如果您的日期时间末尾有一个 Z,这意味着它是 UTC 时间。

    示例2020-04-10T01:28:14.0406387Z

  • 您可能会收到一条错误消息,指出您的日期时间字符串格式不正确。

    示例:“日期时间字符串必须与 ISO8601 格式匹配。”

    若要了解有关如何正确设置日期时间字符串格式的详细信息,请转到 convertTimeZone

检查输出的时区

如果您不确定日期时间时区当前的格式,您可以运行您的流并查看日期时间输出格式。

在本例中,获取今日预测操作输出您获取预测的时间戳。

屏幕截图显示了检查日期时间输出格式的示例。

此日期时间使用 ISO-8601 日期时间格式。 此操作输出 UTC 时区的日期时间。

将时间戳转换为 UTC 或从 UTC 转换时间戳

若要将时间戳从源时区转换为 UTC,或者从 UTC 转换为目标时区,请使用 convertFromUtcconvertToUtc 表达式函数。

限制

某些连接器可能对时区的显示方式有所限制。 要了解每个连接器的更多信息,请访问连接器参考概述